对分组的查询结果执行逻辑检查

时间:2013-05-27 03:57:04

标签: mysql group-by

我的数据集如下,

job_id | status 
-------|-------
  100  |   0
  100  |   0
  102  |   1
  102  |   0
  104  |   1
  104  |   1
---------------

处理数据的查询

SELECT job_id, (CASE WHEN FIND_IN_SET(0, GROUP_CONCAT(status)) > 0 THEN FALSE ELSE TRUE END) AS isfinished
FROM mytable
GROUP BY job_id

,结果是

job_id | isfinished
-------|-----------
  100  |     0
  102  |     0
  104  |     1
-------------------

有没有人这样做过?也许有更好的方法。

1 个答案:

答案 0 :(得分:0)

看起来您正在尝试查看最小值是否大于0.

SELECT job_id, min(status) > 0 AS isfinished
FROM mytable
GROUP BY job_id;

http://sqlfiddle.com/#!2/e4792/4