在dwd_light_device_run 表中的字段有 dev_id,status。在dwd_light_device表中的字段有id,dev_name。 其中dev_id对应着dwd_light_device表中的id,status的值为1或0。 现在需要查找dev_name的总数,status为1时的数量和status为0时的数量。请问这段MySQL语句如何编写
时间: 2024-02-24 16:55:58 浏览: 78
可以使用以下MySQL语句实现:
```
SELECT
COUNT(dwd_light_device.dev_name) AS total,
SUM(CASE WHEN dwd_light_device_run.status = 1 THEN 1 ELSE 0 END) AS status_1_count,
SUM(CASE WHEN dwd_light_device_run.status = 0 THEN 1 ELSE 0 END) AS status_0_count
FROM
dwd_light_device
INNER JOIN dwd_light_device_run ON dwd_light_device.id = dwd_light_device_run.dev_id;
```
这条语句使用了INNER JOIN将两个表连接在一起,然后使用SUM和CASE语句来计算status为1和0时的数量,最终使用COUNT函数计算dev_name的总数。
相关问题
coalesce(device_id,'dwd_flow_device_info_df') device_id 什么意思
这是一段 SQL 代码,其中 coalesce 函数的作用是返回参数列表中第一个非空值。在这里,如果 device_id 字段的值为 NULL,那么就返回字符串 'dwd_flow_device_info_df',否则就返回 device_id 字段的值。因此,这段代码的意思是:如果 device_id 字段的值为 NULL,则将其替换为字符串 'dwd_flow_device_info_df'。
coalesce(device_id,'dwd_flow_device_info_df') 是什么意思
coalesce(device_id,'dwd_flow_device_info_df') 是一个 SQL 函数,它的作用是返回参数列表中的第一个非空值。如果第一个参数 device_id 是非空的,则返回 device_id,否则返回第二个参数 'dwd_flow_device_info_df'。换句话说,它的作用是在两个值中选择一个非空值。
阅读全文