おはようございます。
こんにちは。
こんばんは。
ドラゴンです。
SQL ServerでサブクエリにORDER BYやGROUP BYを入れて実行すると
エラーになってしまったので、解決策を備忘録として残しておきます。
★今回検証用につかうテーブル★
Aテーブル
No | グループID | 名前 | 日付 |
1 | 1 | 太郎 | 2021/04/01 |
2 | 1 | 二郎 | 2021/04/02 |
3 | 2 | 三郎 | 2021/04/03 |
4 | 2 | 四郎 | 2021/04/04 |
目次
概要
SELECT
COUNT(*)
FROM
(
SELECT
グループID
,名前
,日付
FROM
A
GROUP BY
グループID
,名前
,日付
ORDER BY
日付
) AS A
上のSQLを実行すると、上記の画像のようにエラーが出てしまいました。
え?サブクエリにORDER BYやGROUP BYを入れたらあかんのか・・・
解決策
SELECT
COUNT(*)
FROM
(
SELECT
グループID
,名前
,日付
FROM
A
GROUP BY
グループID
,名前
,日付
ORDER BY
日付
OFFSET 0 ROWS
) AS A
それで、色々調べていくと、
ORDER BYの後ろに「OFFSET 0 ROWS」を入れると、問題なく動くという情報を手に入れたので、
実際に試してみたところ、正常に実行することができましたー!
最後に
過去にOracleを使用していたときは、サブクエリにORDER BYやGROUP BYを入れて実行しても問題にならなかったので、少し戸惑ってしまいましたね...注意点として「OFFSET 0 ROWS」が使えるのは「SQL Server 2012」からなので、使用する際は「SQL Server」のバージョンを確認しないといけないです。
それでは、ドラゴンでした~~~。
0 件のコメント:
コメントを投稿