アプリ版:「スタンプのみでお礼する」機能のリリースについて

【表A】
列1 | 列2 
-----------
山田 | A
山田 | A
田中 | A
田中 | B
田中 | C
木村 | A
木村 | A
木村 | B
上記で列1・列2をグループ化した件数を求めたいのですが、Oracleだと
  SELECT COUNT(*) FROM (SELECT 列1,列2 FROM 表A GROUP BY 列1,列2)
というSQL文で結果「6」が出力されますが、SQLServerではエラーとなってしまいます。
SQLServerで実現したい場合はどのように記述すればよろしいでしょうか?

A 回答 (3件)

以下のように書き換えてください。


構文は通ります。

SELECT COUNT(*) FROM (SELECT 列1,列2 FROM 表A GROUP BY 列1,列2)

SELECT COUNT(*) FROM (SELECT 列1,列2 FROM 表A GROUP BY 列1,列2) AS WK

サブクエリの別名が付いていないのをSQL Serverは許してくれないんですね。。。
    • good
    • 4
この回答へのお礼

ご回答ありがとうございます。
サブクエリに名前をつけるだけで…目からウロコです!
早速多用させていただきます。ありがとうございました。

お礼日時:2007/09/03 10:48

SQL Server 2000 では不能は撤回!


お恥ずかしながら、サブクエリに関しての勉強不足でした。

___|(expession)|
---|------------
__1|__________6|

No2さんの回答を実行すると目的を達しました。

※ゴミ回答、お詫びです。
    • good
    • 1

[SQL Server 2005]では許される書き方だが[SQL Server 2000]では不能かと思います。


が、

Select Count(DISTINCT 列1+'/'+列2) FROM A

これで目的は達成できます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
SQL Server2005を使用していますが、確認できました。

お礼日時:2007/09/03 10:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A