【发布时间】:2010-12-21 19:49:23
【问题描述】:
我有一个这样的 sql:
SELECT *, count(*) as cc
FROM manytomany
GROUP BY aid, bid
ORDER BY cc DESC
返回计数为 # 的所有记录。
但是,如果我只想获取 count > 1 的那些,我该怎么办?
【问题讨论】:
我有一个这样的 sql:
SELECT *, count(*) as cc
FROM manytomany
GROUP BY aid, bid
ORDER BY cc DESC
返回计数为 # 的所有记录。
但是,如果我只想获取 count > 1 的那些,我该怎么办?
【问题讨论】:
HAVING 子句
SELECT *, count(*) as cc
FROM manytomany
GROUP BY aid, bid
HAVING cc > 1
ORDER BY cc DESC
【讨论】:
你需要一个HAVING 子句,例如:
SELECT *, count(*) as cc
FROM manytomany
GROUP BY aid, bid
HAVING COUNT(*) > 1
ORDER BY cc DESC
这里有一些background。
【讨论】:
SELECT *, count(*) as cc
FROM manytomany
GROUP BY aid, bid
HAVING cc>1
ORDER BY cc DESC
【讨论】:
你使用了having子句。
SELECT *, count(*) as cc
FROM manytomany
GROUP BY aid, bid
HAVING count(*) > 1
ORDER BY cc DESC
【讨论】:
SELECT *, count(*) as cc
FROM manytomany
GROUP BY aid, bid
HAVING COUNT(*) > 1
ORDER BY cc DESC
我不使用 MySQL,但它应该支持 HAVING - 它已经存在很长时间了。
【讨论】:
SELECT *, count(*) as cc
FROM manytomany
GROUP BY aid, bid
HAVING 1 < count(*)
ORDER BY cc DESC
【讨论】:
HAVING 1 < count(*),但它可以工作。
1 < bla-bla-bla-bla... 而不是bla-bla-bla-bla > 1
count > 1 比1 < count 更具可读性(同样重要的是,更直观 可读)。如果bla-bla-bla... 比count 长得多,您可能会有一点意见,但在这种情况下,您可能希望使用AS bla 对其进行别名,然后使用bla > 1,以获得最大的可读性。