Сравнение данных в одном столбце - SQL - PullRequest
0 голосов
/ 19 ноября 2018

Мне нужна помощь в сравнении данных в одном столбце.Например,У меня есть бизнес-таблица, в которой есть столбцы id, name, address, city, state и stars.

Столбец stars содержит следующие значения: 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5,5.0.

Теперь я должен сравнить предприятия с 2-3 звездами с предприятиями с 4-5 звездами, так как мне это сделать?Любая помощь приветствуется.

Заранее спасибо.

1 Ответ

0 голосов
/ 19 ноября 2018

Я предполагаю, что "они" хотят рассчитывать на диапазон звезд.
Если это так, то вы можете сгруппировать на CASE.

SELECT 
(CASE 
 WHEN stars BETWEEN 0.0 AND 1.5 THEN '0.0-1.5'
 WHEN stars BETWEEN 2.0 AND 3.5 THEN '2.0-3.5'
 WHEN stars BETWEEN 4.0 AND 5.0 THEN '4.0-5.0'
 END) as stars_range,
COUNT(*) AS TotalBusiness,
COUNT(DISTINCT city) AS TotalCities,
COUNT(DISTINCT state) AS TotalStates
FROM Business
WHERE stars BETWEEN 2.0 AND 5.0
GROUP BY 
(CASE 
 WHEN stars BETWEEN 0.0 AND 1.5 THEN '0.0-1.5'
 WHEN stars BETWEEN 2.0 AND 3.5 THEN '2.0-3.5'
 WHEN stars BETWEEN 4.0 AND 5.0 THEN '4.0-5.0'
 END)

Или, возможно, условный агрегат выглядит лучше?

SELECT 
COUNT(CASE WHEN stars BETWEEN 2.0 AND 3.5 THEN 1 END) AS stars_2_3,
COUNT(CASE WHEN stars BETWEEN 4.0 AND 5.0 THEN 1 END) AS stars_4_5
FROM Business
WHERE stars BETWEEN 2.0 AND 5.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...