gpt4 book ai didi

MySQL 条件分组

转载 作者:太空宇宙 更新时间:2023-11-03 11:30:35 25 4
gpt4 key购买 nike

我有这样的数据:

+---------------+------+
| timestamp | robo |
+---------------+------+
| 1518259341785 | A |
| 1518259341785 | A |
| 1518259341785 | A |
| 1518259341785 | RE |
+---------------+------+

还有这个:

+---------------+------+
| timestamp | robo |
+---------------+------+
| 1518259341788 | RE |
| 1518259341788 | RE |
| 1518259341788 | RE |
| 1518259341788 | A |
+---------------+------+

众所周知,如果我们对数据进行分组并计算行数,使用以下 SQL:

SELECT timestamp, robo, COUNT(*) AS num_rows
FROM tables
GROUP BY timestamp

num_rows 将是 4。如何根据条件 only if robo RE = 1 在时间戳中对数据进行分组。这样 1518259341788 组就不会计数/出现。谢谢。

更新:无条件分组结果:

+---------------+------+----------+
| timestamp | robo | COUNT(*) |
+---------------+------+----------+
| 1518259341785 | A | 4 |
| 1518259341788 | A | 4 |
+---------------+------+----------+

条件分组的预期结果:

+---------------+------+----------+
| timestamp | robo | COUNT(*) |
+---------------+------+----------+
| 1518259341785 | A | 4 |
+---------------+------+----------+

最佳答案

如果您想获得每个timestamp值的记录数,但前提是该timestamp值的RE记录数是1,那么你可以这样做:

SELECT timestamp, COUNT(*) AS num_rows
FROM tables
GROUP BY timestamp
HAVING SUM(CASE WHEN robo = 'RE' THEN 1 ELSE 0 END) = 1

关于MySQL 条件分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50260982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com