ВЫБРАТЬ столбец на основе условий - PullRequest
1 голос
/ 29 мая 2020

У меня есть таблица, подобная следующей:

+---------+--------------+
| user_id | distance     |
+---------+--------------+
|     101 | 12.05        |
|     103 | 4.8          |
|     207 | 37.1         |
|     991 | 3.51         |
|     215 | 15.9         |
+---------+--------------+

Затем мне нужно количество пользователей, которые покрывают различный диапазон расстояний: 0-5km как short_distance, 5-10km как medium_distance , >10km как long_distance.

Я немного запутался при агрегировании.

Ответы [ 2 ]

3 голосов
/ 29 мая 2020

используйте выражение CASE:

select user_id, 
       case 
         when distance <= 5 then 'short distance'
         when distance <= 10 then 'medium distance'
         else 'long distance'
       end as what
from the_table;
1 голос
/ 29 мая 2020

Вы хотите, чтобы количество пользователей было по категориям. Попробуйте это

select 
       case 
         when distance > 10 then 'long_distance'
         when distance > 5  then 'medium_distance'
         else 'short_distance'
      end as "distance_type", count(*) as "Count"
from user_distance

group by "distance_type"

DEMO

...