【发布时间】:2015-12-07 12:49:47
【问题描述】:
我的 Access 数据库表 ITEM 有 2 列:ITEMID 和 CATEGORY。
ITEMID CATEGORY
I01 C01
I02 C02
I03 C01
I04 C02
I05 C03
我想做一个查询,选择具有最大项目数的项目类别。 我写的查询如下:
SELECT TOP 1 ITEM.CATEGORY
FROM ITEM
GROUP BY ITEM.CATEGORY
ORDER BY COUNT(ITEM.ITEMID) DESC;
结果如下:
CATEGORY
C02
C01
查询的另一个版本(使用嵌套方法)如下:
SELECT ITEM.CATEGORY
FROM ITEM
GROUP BY ITEM.CATEGORY
HAVING COUNT(*)=
(SELECT MAX(TBL2.CNT2)
FROM
(SELECT COUNT(*) AS CNT2
FROM ITEM
GROUP BY ITEM.CATEGORY) AS TBL2);
结果如下:
CATEGORY
C01
C02
请注意,两个查询返回相同的结果,但顺序不同:第一个返回 C02,然后是 C01,而第二个返回 C01,C02
请发表评论。还有更好的选择吗?
【问题讨论】:
-
你有什么问题?
-
我在这里写的查询有没有更好的替代方法?