我对 SQL Server 很陌生,所以我现在道歉。
我有一个表,我想 GroupByfield1
并返回该字段field2
中关联计数最高的记录。counted
我通常会在 MS ACCESS 中使用 2 个查询来执行此操作,第一个查询以降序返回数据,第二个查询使用 First() 函数选择第一条记录,如下所示:-
查询 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
Query1 results (groups by field1, counts where "counted" field record is "2")
field1 ¦ field2 ¦ count1
10 ¦ 20 ¦ 2
10 ¦ 30 ¦ 1
20 ¦ 50 ¦ 1
Query 2 resuls (the output I want to get from SQL)
field1 ¦ firstoffield2
10 ¦ 20
20 ¦ 50
I hope that helps a bit, thanks guys.