Sql 如何运行此查询?
我有下表Sql 如何运行此查询?,sql,database,Sql,Database,我有下表 MID IID 1 23 1 24 1 25 2 32 2 54 3 11 4 55 5 67 我想找到所有的MID,其中计数(IID)>1 i、 e结果如下 MID count(IID) 1 3 2 2 另外,我试过了,但是我在所有的中期测试中都得到了结果。这是我的问题 select distinct a.MID,count(a.IID) from Item_attribute as a group by a.MID
MID IID
1 23
1 24
1 25
2 32
2 54
3 11
4 55
5 67
我想找到所有的MID,其中计数(IID)>1
i、 e结果如下
MID count(IID)
1 3
2 2
另外,我试过了,但是我在所有的中期测试中都得到了结果。这是我的问题
select distinct a.MID,count(a.IID) from Item_attribute as a group by a.MID
添加如下条款:
having count(a.IID)>1
在SELECT语句中使用HAVING子句:
SELECT a.MID,count(a.IID)
FROM Item_attribute as a
GROUP BY a.MID
HAVING COUNT(a.IID) > 1
请尝试以下方法
SELECT MID,
COUNT( IID ) as CountIID
FROM Item_attribute
GROUP BY MID
HAVING COUNT( IID ) > 1;
SELECT MID,
CountIID
FROM
(
SELECT MID,
COUNT( IID ) as CountIID
FROM Item_attribute
GROUP BY MID
HAVING COUNT( IID ) > 1
) AS limitedCountIIDFinder
WHERE CountIID = ( SELECT MAX( CountIID ) AS MaxCountIID
FROM
(
SELECT MID,
COUNT( IID ) as CountIID
FROM Item_attribute
GROUP BY MID
) AS countIIDFinder
)
对于其他查询,请尝试以下操作
SELECT MID,
COUNT( IID ) as CountIID
FROM Item_attribute
GROUP BY MID
HAVING COUNT( IID ) > 1;
SELECT MID,
CountIID
FROM
(
SELECT MID,
COUNT( IID ) as CountIID
FROM Item_attribute
GROUP BY MID
HAVING COUNT( IID ) > 1
) AS limitedCountIIDFinder
WHERE CountIID = ( SELECT MAX( CountIID ) AS MaxCountIID
FROM
(
SELECT MID,
COUNT( IID ) as CountIID
FROM Item_attribute
GROUP BY MID
) AS countIIDFinder
)
(后面的解释…)
如果您有任何问题或意见,请随时发表相应的意见。如果您希望对聚合字段设置条件,您需要使用
having
如果使用分组方式,也不需要使用distinct。
就你而言:
select a.MID,count(a.IID) from Item_attribute as a group by a.MID having count(a.IID)>1
如果要获取“最大计数”值,请按降序对其进行排序,并获取前1:
select top 1 a.MID,count(a.IID)
from Item_attribute as a
group by a.MID
having count(a.IID)>1
order by count(a.IID) desc
添加如下having子句:“having count(a.IID)>1”是的,它起作用了……谢谢!还有一件事…如果我必须只找到包含最大值(计数(iid))的MID呢?谢谢。。还有一件事,如果我必须只找到包含max(count(iid))的MID,该怎么办?我已经更新了我的答案,以包含一个查询,该查询将完成这项工作。它会给你所有顶级国家的记录。如果你只想要一个,选择哪一个重要吗?