私は SQL Server を初めて使用するので、申し訳ありません。
テーブルがあり、GroupBy を実行して、フィールドに関連付けられたカウントが最も高いレコードをfield1
返したいと考えています。私は通常、2 つのクエリを使用して MS ACCESS でこれを行います。最初のクエリはデータを降順で返し、2 番目のクエリは First() 関数を使用して最初のレコードを選択します。field2
counted
クエリ 1
SELECT t.field1, t.field2, Count(t.counted) AS count1
FROM Table1 AS t
WHERE (((t.counted)=2))
GROUP BY t.field1, t.field2
ORDER BY t.field1, Count(t.counted) DESC;
クエリ 2 (上記のクエリ 1 に基づく)
SELECT q.field1, First(q.field2) AS firstoffield2
FROM q
GROUP BY q.field1;
SQL Server 2008 クエリで上記と同じ結果を達成しようとするのは非常に困難です。誰でも助けることができますか?(使用する必要がある正確な SQL を提供してください)。
データのサブセットと結果の例を次に示します。
表1
field1 ¦ field2 ¦ counted
10 ¦ 20 ¦ 2
10 ¦ 30 ¦ 2
10 ¦ 20 ¦ 2
20 ¦ 30 ¦ 0
20 ¦ 40 ¦ 0
20 ¦ 50 ¦ 1
20 ¦ 50 ¦ 2
20 ¦ 60 ¦ 1
クエリ 1 の結果 (フィールド 1 でグループ化、「カウントされた」フィールド レコードが「2」であるカウント)
field1 ¦ field2 ¦ count1
10 ¦ 20 ¦ 2
10 ¦ 30 ¦ 1
20 ¦ 50 ¦ 1
クエリ 2 の結果 (SQL から取得したい出力)
field1 ¦ firstoffield2
10 ¦ 20
20 ¦ 50
それが少し役立つことを願っています、ありがとう。