揮発性のメモ2

http://d.hatena.ne.jp/iww/

GROUP BYの注意

GROUP BY を使うときは、フィールドが必ず一意になるように指定する必要がある

MySQLでは許される書き方

SELECT 
    a,
    b,
    c
FROM 
    hoge 
GROUP BY 
    a

MySQLなら、bc を適当に表示してくれるが、Oracleでは許されない
(ORA-00979: GROUP BYの式ではありません。)

Oracleでは次のようにする

SELECT 
    a,
    MAX(b),
    MAX(c)
FROM 
    hoge 
GROUP BY 
    a

ORDER BY でも同様に、一意になるものを指定する

SELECT 
    a,
    MAX(b),
    MAX(c)
FROM 
    hoge 
GROUP BY 
    a
ORDER BY 
    a,
    MAX(b)