Scottish Parliament/ja

From SQLZoo

スコットランド議会

このデータには1999年のすべてのスコットランド議会議員 (MSPs)が含まれる。 大部分の議会議員は政党に所属している。いくつかの政党の党首(leader)は議会議員である。テーブルが2つある:

議会議員テーブル msp
名前 Name
政党 Party
選挙区 Constituency

msp
Name Party Constituency
Adam MSP, BrianSNPNorth East Scotland
Aitken MSP, BillConGlasgow
Alexander MSP, Ms WendyLabPaisley North
... 全レコード数: 129

政党テーブル party
コード Code
党名 Name
党首 Leader

party
Code Name Leader
ConConservativeMcLetchie MSP, David
GreenGreen
LabLabourDewar MSP, Rt Hon Donald
... 全レコード数: 9

NULL値の選択

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

Outer joins

全議員の名前と利用可能なら党名を挙げる。 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

Self joins 次のチュートリアルのトピック

注記

残念ながら、ドナルド・デュワーは2000年に亡くなりました。スコットランドの労働党で有能で人気の高い指導者でした。

DataWars, Data Science Practice Projects - LogoDataWars: Practice Data Science/Analysis with +100 Real Life Projects
  • Served by: hammy at 2025-07-03T15:48