【发布时间】:2022-12-06 23:13:11
【问题描述】:
朋友们,我正在尝试从 MySQL 中划分两个 COUNT(*): 我有这个查询:
SELECT 'Total ', COUNT(*)
FROM root4
WHERE str_to_date(DATE, '%d.%m.%Y') = CURDATE()
UNION
SELECT 'Good', COUNT(*)
FROM root4
WHERE str_to_date(DATE, '%d.%m.%Y') = CURDATE()
AND testresult ='OK'
此查询的输出如下所示:
________________________
|Total | COUNT(*) |
________________________
|Total| 42 |
|Good | 34 |
_______________________
我想要实现的是在“Good”下创建另一行称为“FPY”,但值是“Good”除以“Total”的百分比。 是这样的:
________________________
|Total | COUNT(*) |
________________________
|Total| 42 |
|Good | 34 |
|FPY | 80.95 |
_______________________
我试着像菜鸟一样把它们分开:
SELECT 'Total ', COUNT(*)
FROM root4
WHERE str_to_date(DATE, '%d.%m.%Y') = CURDATE()
UNION
SELECT 'Good', COUNT(*)
FROM root4 WHERE str_to_date(DATE, '%d.%m.%Y') = CURDATE()
AND testresult ='OK'
UNION
SELECT 'FPY', (COUNT(*)
FROM root4
WHERE str_to_date(DATE, '%d.%m.%Y') = CURDATE() /
UNION
SELECT 'Good', COUNT(*)
FROM root4
WHERE str_to_date(DATE, '%d.%m.%Y') = CURDATE()
AND testresult ='OK')
当然,这是行不通的......
注意:Colum DATE 是 varchar,这就是我使用 str_to_date 的原因。
【问题讨论】:
-
如果我们可以阅读查询,也许我们可以提供帮助。如果它全部在页面上,它更容易阅读,我们不必直接滚动到明天
-
第三个查询中的括号错误
标签: mysql