gpt4 book ai didi

mysql - 对 MySQL 中特定字段中具有相同值的行进行分组

转载 作者:可可西里 更新时间:2023-11-01 07:08:18 24 4
gpt4 key购买 nike

我在 MySQL 表中有以下数据。

+--------+----------+------+
| job_id | query_id | done |
+--------+----------+------+
| 15145 | a002 | 1 |
| 15146 | a002 | 1 |
| 15148 | a002 | 1 |
| 15150 | a002 | 1 |
| 15314 | a003 | 0 |
| 15315 | a003 | 1 |
| 15316 | a003 | 0 |
| 15317 | a003 | 0 |
| 15318 | a003 | 1 |
| 15319 | a003 | 0 |
+--------+----------+------+

我想知道是否可以有一个 sql 查询,它可以按 query_id 如果所有“完成”字段都标记为 1。我想象的可能输出是:

+----------+------+
| query_id | done |
+----------+------+
| a002 | 1 |
| a003 | 0 |
+----------+------+

我尝试了以下 SQL 查询:

select job_id, query_id, done from job_table group by done having done = 1 ;

但运气不好。如果有任何帮助,我将不胜感激!

最佳答案

我对这个解决方案并不感到特别自豪,因为它不是很清楚,但至少它快速而简单。如果所有项目都有 "done"= 1 那么总和将等于计数 SUM = COUNT

SELECT query_id, SUM(done) AS doneSum, COUNT(done) AS doneCnt 
FROM tbl
GROUP BY query_id

如果您添加一个 having 子句,您将获得“完成”的项目。

HAVING doneSum = doneCnt

我会让你正确地格式化解决方案,你可以做一个 DIFERENCE 来获得“未完成”的项目或 doneSum <> doneCnt。

顺便说一句,SQL fiddle here .

关于mysql - 对 MySQL 中特定字段中具有相同值的行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15203058/

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