У меня есть таблица MySQL, в которой есть столбец с именем score
, который находится в диапазоне от 0 до 1. Я хочу рассчитать количество строк, где оценка:
- Больше 0,1
- Больше 0,3
- Больше 0,6
- Больше 0,95
Я могу выполнить запрос следующим образом:
SELECT COUNT(*)
FROM my_table
WHERE score > 0.1
И сделать это для каждого значения. Я бы хотел сделать это одним запросом. Таким образом, желаемый формат вывода будет выглядеть примерно так:
low, medium, high, very_high
200 156 123 96
Есть предложения? Я думаю, что это включает case when
, что-то вроде:
SELECT COUNT(*),
CASE WHEN score > 0.1 THEN "low"
CASE WHEN score > 0.3 THEN "medium"
CASE WHEN score > 0.6 THEN "high"
CASE WHEN score > 0.95 THEN "very_high" end as score_group
FROM my_table
GROUP BY score_group
Но это не учитывает тот факт, что оценка 0,4 будет как "низкой", так и "средней", так что это не совсем верно.
Любые мысли были бы великолепны!