【问题标题】:Select rows with counts less than value for all dates选择所有日期的计数小于值的行
【发布时间】:2021-04-24 23:18:11
【问题描述】:

有Mysql Ver 15.1 Distrib 5.5.64-MariaDB 表:

id  date        count
1   17.10.2021  1
2   17.10.2021  1
3   17.10.2021  2

1   18.10.2021  1
2   18.10.2021  2
3   18.10.2021  3

1   19.10.2021  1
2   19.10.2021  1
3   19.10.2021  4

如何仅选择所有日期的计数

预期结果:

id
1

【问题讨论】:

  • 对,我没有正确读取示例数据。

标签: mysql


【解决方案1】:

您可以使用聚合和HAVING 子句中的条件来做到这一点:

SELECT id
FROM tablename
GROUP BY id
HAVING MAX(count) < 2

请参阅demo
结果:

id
1

【讨论】:

  • 这不会也返回 2 的 id,因为 id 2 在 2021 年 10 月 19 日的计数为 1?您需要在某处包含日期。
  • @Rhuarc13 不,不需要日期。我将条件更改为&lt; 2 而不是&lt;=2
  • forpas,如果“3 17.10.2021 1” id=3 也是结果。但我只需要那个 id ,每个日期的 count = 1。
  • @harp1814 id=3 不在结果中。检查我的答案中的演示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
相关资源
最近更新 更多