我有一个表,其中存储了每天可用的工具。 这是结构
| Tool_ID | Date | Available |
---------------------------------------
| 1 | 20180501 | 1 |
| 1 | 20180502 | 3 |
| 1 | 20180503 | 1 |
| 2 | 20180501 | 1 |
| 2 | 20180502 | 0 |
| 2 | 20180503 | 2 |
我们可以假设 toolID 1 是锤子,toolID 2 是铁砧。
我想不花一会儿时间就知道这三天是否有可用的工具。 例如,5 月 2 日至少有 1 个 toolID=1(锤子)可用,同时没有铁砧可用。
有办法只在 SQL 查询中找到这个吗?
最佳答案
好吧,我想到了group by
和min()
:
select tool_id,
(case when count(*) < 3 then 0
else min(available)
end) as min_available_for_all_three_days
from tools t
where date >= '20180501' and date < '20180504'
group by tool_id;
这假设如果缺少一行,则该工具不可用。
关于mysql - Sql查询读取多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50725020/