【问题标题】:MySQL Count GET ALL ROWS [closed]MySQL计数获取所有行[关闭]
【发布时间】:2011-05-24 15:34:57
【问题描述】:

我想获取所有具有count(AID)>5 的行 当我进行查询时:

SELECT x,y,z, COUNT(AID) as total from Table where ... Having total >5

它返回 total > 5 分组的行!但不是所有行! 我想要每一行..

【问题讨论】:

  • 您想要所有大于 5 的行还是想要按所有行分组的 AID 计数?你的问题不清楚。
  • 你有什么问题?我不明白。
  • 如果我确实选择了计数,它将返回具有计数的行,但我实际上想要所有适用于具有的行!
  • 我们有一堆这些问题最近不是问题......

标签: mysql sql


【解决方案1】:

聚合查询不是这样工作的。对一系列记录进行计数(无论哪个满足WHERE 子句的条件),然后HAVING 子句过滤掉计数小于 5 的任何记录。如果您想要对计数做出贡献的特定行你可以尝试类似的东西

select * from
`Table`, 
(SELECT x,y,z, COUNT(AID) as total
   from `Table`
   where /* Some condition goes here */
   Having total >5) subqry
where subqry.x = Table.x
and subqry.Y = Table.Y
and subqry.Z = Table.Z

...当然,这假定x,y,zTable 的唯一键。如果不是这种情况,那么这种方法可能行不通。

另外,您是否缺少group by 子句?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多