#sql
Вопрос:
У меня есть таблица с именем table_a
, которая выглядит следующим образом:
Color Person Shape blue Jane circle orange Bob square blue Sally rectangle yellow Ted circle green Bill diamond yellow Barry circle blue Sally hexagon blue Mary circle
Я хотел бы подсчитать количество людей ( person
столбец), использующих один и тот же цвет, следующим образом:
Color number_people blue 3 yellow 2
Я хотел бы получить количество людей с одинаковым цветом кожи. Мой SQL выглядит следующим образом:
SELECT Color, COUNT(*) as number_people FROM from table_a GROUP BY Color HAVING number_people gt; 1
Это правильно? И, если да, есть ли лучший способ сделать это?
Спасибо!
Комментарии:
1. Я предполагаю, что вы хотите
COUNT(DISTINCT person) as number_people
вместоCOUNT(*)
этого, чтобы не считать Салли 2 людьми в синем.
Ответ №1:
SELECT table_a.Color, COUNT(b.primarykey) as number_people FROM from table_a join table_a b on (table_primarykey = b.primarykey) GROUP BY table_a.Color HAVING number_people gt; 1
Комментарии:
1. Разве
DISTINCT
где-нибудь не должно быть? Кроме того, я сомневаюсь в необходимостиJOIN
А.2. проверьте это! как еще ты можешь знать, тф, у меня нет твоей базы данных передо мной