Scottish Parliament/ja
スコットランド議会
このデータには1999年のすべてのスコットランド議会議員 (MSPs)が含まれる。 大部分の議会議員は政党に所属している。いくつかの政党の党首(leader)は議会議員である。テーブルが2つある:
議会議員テーブル msp
名前 Name
政党 Party
選挙区 Constituency
Name | Party | Constituency |
---|---|---|
Adam MSP, Brian | SNP | North East Scotland |
Aitken MSP, Bill | Con | Glasgow |
Alexander MSP, Ms Wendy | Lab | Paisley North |
... 全レコード数: 129 |
政党テーブル party
コード Code
党名 Name
党首 Leader
Code | Name | Leader |
---|---|---|
Con | Conservative | McLetchie MSP, David |
Green | Green | |
Lab | Labour | Dewar MSP, Rt Hon Donald |
... 全レコード数: 9 |
NULL
を扱う
ある議員は労働党(Labour party)を追放されて政党に未所属である。 彼(name)を見つける。
dept=NULL という語句を使えばできると思うでしょうね。 できません。 それはNULLが"伝搬"するからです。 NULLを含むいかなる式も式自身の値はNULLになります。それ故、例えば 2+NULL も party || NULL も NULL=NULL もすべてNULLです。
NULL
値はエラーを引き起こしません。しかしながらNULL
に触れたすべてに感染します。 この様な要素を代数で底(ボトム)
と呼びますが、(訳者補足: おかしく聞こえても)大人ですから笑わないでね。 ボトム型.
SELECT name FROM msp WHERE party IS NULL
全ての党名(name)と党首(leader)のリストを取得する。
SELECT name, leader FROM party
党首がいる政党(name)と党首(leader)を挙げる。
SELECT name, leader FROM party
WHERE leader IS NOT NULL
少なくとも1名の議会議員がいる政党をすべて取得する。
SELECT DISTINCT party.name FROM msp, party
WHERE party=code
全議員の名前と利用可能なら党名を挙げる。 Canavan MSP, Dennis
がリストに存在することを確認せよ。
ORDER BY msp.name をMSPのソート出力に使う。
SELECT msp.name, party.name
FROM msp LEFT JOIN party ON party=code
ORDER BY msp.name
議会議員がいる政党(党名)のリストを議員数を含めてリストにする。
SELECT party.name, COUNT(msp.name)
FROM msp, party
WHERE msp.party=party.code
GROUP BY party.name
政党のリストを議会議員数と共にリストにする。議会議員のいない政党も含める。
SELECT party.name, COUNT(msp.name)
FROM party
LEFT JOIN msp ON party.code=msp.party
GROUP BY party.name
注記
残念ながら、ドナルド・デュワーは2000年に亡くなりました。スコットランドの労働党で有能で人気の高い指導者でした。