2015-07-29 2 views
0

Я немного новичок в базах данных, но у меня есть некоторый опыт работы с MySQL, но теперь я создаю приложение, которое использует Postgres, и я путаю, как запросы работают с postgres или структурой немного отличается от MySQL. И я действительно не знаю, с чего начать. Таким образом, у меня есть таблицаPostgres 9.3 Group By and Count Function

qa_forms 
->id 
->agent_id 
->verified_status 

Столбец verified_status может иметь значение Passed, Passed-Approved, Passed-With Changes, Passed-Unverified, Pending, Reject A, Reject B, Reject C То, что я хочу сделать, это подсчитать общее количество каждого Passed, Passed-Approved, Passed-With Changes, Passed-Unverified, Pending, Reject A, Reject B, Reject C за agent_id так GROUP BY agent_id я думаю. У меня есть Postgres 9.3. Это отчет должен выглядеть следующим образом:

enter image description here

+0

@SamiKuhmonen удалось получить некоторые запросы на работу. см. мой ответ ниже, любое лучшее предложение приветствуется. благодаря – jackhammer013

ответ

0

Я попытался это и, кажется, работает хорошо. Любой лучший ответ приветствуется.

`SELECT agent_id, 
COUNT(verified_status = 'Passed' OR NULL) AS passed, 
COUNT(verified_status = 'Passed-Approved' OR NULL) AS passed_approved, 
COUNT(verified_status = 'Passed-With Changes' OR NULL) AS passed_changes, 
COUNT(verified_status = 'Passed-Unverified' OR NULL) AS passed_unverified, 
COUNT(verified_status = 'Pending' OR NULL) AS pending, 
COUNT(verified_status = 'Reject A' OR NULL) AS reject_a, 
COUNT(verified_status = 'Reject B' OR NULL) AS reject_b, 
COUNT(verified_status = 'Reject C' OR NULL) AS reject_c 
FROM qa_forms 
GROUP BY agent_id;`