位置番号と出力列名で GROUP BY する

GROUP BY に位置番号 1 を書いた文を調べる例です。位置番号が選択リストの項目を指すため、その項目が OK と扱われることを確かめます。

入力

SQL

SELECT lower(name), count(*) FROM t GROUP BY 1

主キー(任意)

(空)

結果

エラー 0 件・警告 0 件・情報 1 件

指摘(エラー・警告・情報)

  • 情報 全体 抜け候補は見つかりませんでした。
選択リストの項目2 個
抜け候補0 個
OK2 個
判定不能0 個

項目ごとの判定

項目ごとの判定
#選択リストの式集約の外にある列判定理由
1lower(name)nameOKGROUP BY に同じ式(または位置番号・別名)がある
2count(*)-OK列は集約関数の中だけ

検算(この結果になる理由)

GROUP BY には出力列の位置番号を書けます(SELECT 文書 GROUP BY 句)。1 は選択リストの 1 番目 lower(name) を指すので、その項目は OK、count(*) は集約関数なので OK で、指摘はありません。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • 結果は字句の読み取りにもとづく確認で、実際のデータベースでの解釈を保証するものではありません。
  • ドキュメントは PostgreSQL License で公開されています。このサイトはその内容を要約して参照しており、転載はしていません。

ほかの入力例