2014年12月4日木曜日

【MySQL】 SELECT した結果を直接 SELECT の対象にする例

へ~、こんなこともできるんだ!ネタ。

MySQL を使っている方には「何を今更」かもしれないが、Firebird では動かないのではないか(最新版では試していないが)。

select
  A.GRPID, A.TEAMNAME, Count(A.MEMBERID)
  /* Join して中間テーブルを作成 */
  from (
    select MEMBERID, GRPID,
      (select TEAMNAME from TEAMINFO T where T.MEMBERID=M.MEMBERID) as TEAMNAME
    from MEMBERS M
  ) A
  group by A.GRPID, A.TEAMNAME
;


SELECT が3段になっているケースで、3段目で取得した項目を1段目の GROUP BY で指定できる。