use prime_minister_2013;
SELECT ministry.pm_name as 'PM Name',
ministry.min_begin as 'Commencement Date',
ministry.party as 'Party',
deputy_pm.deputy_name as 'Deputy Name',
governor_general.GG_title as 'Governor General Title',
governor_general.GG_name as 'Governor General Name',
COUNT(ministry.pm_name) as 'Times Elected'
FROM ministry
INNER JOIN deputy_pm ON ministry.min_nr=deputy_pm.min_nr
INNER JOIN governor_general on ministry.pm_name=governor_general.pm_name
WHERE ministry.party NOT LIKE '%ALP%' AND ministry.min_begin < '1930%'
GROUP BY ministry.pm_name
ORDER BY ministry.min_begin;
生成的表显示量的两倍首相当选为他们的名字在ministry
表和governor_general
表显示出来。 然而COUNT
条款仅限于从部长表中只计入pm_name
。这有什么错我的SQL COUNT条
当INNER JOIN
被带走时,计数是正确的。 我的查询有什么问题?
governor_general表
+--------------+----------------+----------+----------+---------+
|GG_name |GG_Title |GG_begin |GG_end |pm_name |
+--------------+----------------+----------+----------+---------+
|Baird J L |Baron Stonehaven|1925-10-08|1931-01-22|Bruce S M|
+--------------+----------------+----------+----------+---------+
你可以展示一些样本来自'governor_general'的数据 – Jens 2014-09-24 05:43:14
尝试'COUNT(DISTINCT ministry.pm_name)' – 2014-09-24 05:43:16
该死的错误地方请忽略 – 2014-09-24 06:01:59