У меня есть следующая таблица:
CREATE TABLE Source_Table
([Student_ID] varchar(10), [Class_ID] varchar(10), [Sport] varchar(10))
;
INSERT INTO Source_Table
([Student_ID], [Class_ID], [Sport])
VALUES
('S00001', 'C0123A', 'Football'),
('S00002', 'C0123A', 'Football'),
('S00003', 'C0123A', 'Football'),
('S00004', 'C0123A', 'Football'),
('S00005', 'C0111B', 'Basketball'),
('S00006', 'C0111B', 'Basketball'),
('S00007', 'C0211C', 'Basketball'),
('S00008', 'C0100D', 'Soccer'),
('S00009', 'C0100D', 'Soccer');
и я хотел бы получить следующий вывод:
Правило: для Class_ID, имеющего счет (Student_ID)> = 3, считать только один раз
Sport Count
Basketball 3
Football **1**
Soccer 2
Я пытался использовать GROUP BY Sport и COUNT (CLASS_ID), но не уверен, как реализовать правило.
http://www.sqlfiddle.com/#!18/3e6a3/3
select Sport, Count(Class_Id) from Source_Table
group by Sport
Вывод того, что я пробовал:
Sport Count
Basketball 3
Football **4** when I would like it to be Football **1**
Soccer 2