问题详情
根据需求,我们需要编写SQL查询语句来统计每个基地的地块面积和设备数量。假设我们有以下三张表:
基地 base 表,包含 base_id 和 base_name 字段。
地块 plot 表,包含 plot_id、plot_name,area, 和 base_id 字段。
设备 device 表,包含 device_id、device_name、device_type、device_status 和 base_id 字段
使用SQL的查询语句
SELECT
b.base_id,
b.base_name,
SUM(p.area) AS total_area,
COUNT(DISTINCT d.device_id) AS device_count
FROM
base b
LEFT JOIN
plot p ON b.base_id = p.base_id
LEFT JOIN
device d ON b.base_id = d.base_id AND d.device_status = '上线'
GROUP BY
b.base_id, b.base_name;
目前使用的数据库为达梦数据库,版本8版本。 这个聚合SQL这样写有问题么?
回答
SUM(p.area)和COUNT(d.device_id) 可能会返回 NULL,需要用coalesce函数将null转换成0
SUM(p.area)和COUNT(d.device_id) 可能会返回 NULL,需要用coalesce函数将null转换成0
SUM(p.area)和COUNT(d.device_id) 可能会返回 NULL,需要用coalesce函数将null转换成0
版权:言论仅代表个人观点,不代表官方立场。转载请注明出处:https://www.stntk.com/question/1153.html
还没有评论呢,快来抢沙发~