2016-08-18 2 views
4

Ниже приведена таблица с введенными данными.SQL-запрос для создания списка и более

CREATE TABLE police(event_id VARCHAR(100), search_type VARCHAR(1000), 
        reported_by VARCHAR(100)); 
INSERT INTO police VALUES ('gng67g6yf', 'person','ceridigion'); 
INSERT INTO police VALUES ('bfewbqfjhfb', 'person', 'ceridigion'); 
INSERT INTO police VALUES ('ytftdfctg', 'n/a','ceridigion' ); 
INSERT INTO police VALUES ('yufvugyu', 'person','pembrokeshire', ); 

То, что я пытаюсь выяснить, является запрос, который будет список reported_by и есть поиски, которые имели место в областях. Нечто подобное ниже:

reported_by  Stopped and searched 
ceridigion    2 
pembrokeshire   1 

ответ

1
SELECT reported_by, 
     SUM(CASE WHEN search_type = 'person' THEN 1 ELSE 0 END) AS `Stopped and searched` 
FROM police 
GROUP BY reported_by 

Демо здесь:

SQLFiddle

1

Если я правильно понимаю, вам просто нужно подсчитать количество строк (за reported_by, которые имеют search_type то есть не n/a:

SELECT reported_by, COUNT(*) AS "Stopped and searched" 
FROM  police 
WHERE search_type != 'n/a' 
GROUP BY reported_by 
Смежные вопросы