Scottish Parliament/zh

http://sqlzoo.net/wiki/Scottish_Parliament/zh

Msp(name,party,constituency)

Party(code,name,leader)

msp.party=party.code


1.一個成員被工黨逐出黨,現沒屬任何黨。找出他。

Select name from msp

Where party is null

说明:列出空值需用“is null”


2.列出每個黨及其領導人。

Msp(name,party,constituency)

Party(code,name,leader)

Msp.party=party.code

Select name,leader

From party


3.列出每個黨及其領導人,這些黨其實是沒有領導人的。

SELECT NAME,leader

FROM  party

WHERE LEADER IS not NULL


4.列出政黨名單,當中最少有一名黨員在議會內。

Select party.name from

party join msp on

msp.party=party.code

Group by msp.party, party.name

Having count(party.name)>=1


5.列出議會成員的名單,如有所屬政黨,一同列出。確保 Canavan MSP,

Dennis 是在名單中。 按msp.name順序排列。


Select msp.name,party.name from party

Right Join msp on msp.party=party.code

Order by msp.name

说明:此处注意使用right join,因为原题中要求列出所有议员名单,以表格msp为主。


6.列出議會中每一政黨的黨員人數。

Select msp.party,party.name,count(party.name)

From msp join party

On msp.party=party.code

Group by msp.party,party.name


7.列出每一政黨的議會中黨員人數,包括沒有黨員在議會中的政黨。

Select party.name,count(msp.name) from party

Left join msp

On msp.party=party.code

Group by party.name

说明:此处注意使用left join msp,原题要求列出每一政党,所以以表格party为主。

推荐阅读更多精彩内容