我尝试在mysql中做更多的预先查询,但是在查询中出现错误,我尝试计数和分组。以下是我的疑问:
"select department,
(select count(id) from mcu group by dept) as tot1,
(select count(status_mcu) from mcu where status_mcu='done' group by dept) as tot2,
(tot1 - sum(select count(status_mcu) where status_mcu='done') as tot3,
FROM mcu"你能帮帮我吗?我的问题出什么问题了?我在其他线程中做了一些搜索,这就是我得到的。请尝试执行如下查询:
"select department,
select count(id),
sum(case when status_mcu='done' then 1 end)
...
"也不起作用。任何帮助都是感激的。
我的sql版本是5.5.25
发布于 2021-01-21 15:22:11
如果没有看到返回的确切错误消息,我就无法100%确定,但是有两个明显的错误:
Department还是Dept?这似乎不太清楚。tot1,除非它首先在CTE或子select(派生表)中派生。sum(select count(status_mcu) where status_mcu='done')没有FROM子句。此外,我不确定聚合高级别聚合是必要的/需要的目的是什么。从这个开始,看看它是否返回所需的结果(如果没有,您需要澄清您的问题以提供适当的逻辑):
SELECT
mcu.Dept
,COUNT(mcu.Id) AS Tot1
,SUM
(
CASE
WHEN mcu.status_mcu='done' THEN 1
ELSE 0
END
) AS tot2
,COUNT(mcu.Id) -
SUM
(
CASE
WHEN mcu.status_mcu='done' THEN 1
ELSE 0
END
) AS tot3
FROM
mcu mcu
GROUP BY
mcu.Depthttps://dba.stackexchange.com/questions/283695
复制相似问题