朋友们,我正在尝试从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')
当然,这是行不通的。
注意:列DATE
是varchar,这就是我使用str_to_date的原因。
2条答案
按热度按时间xzv2uavs1#
看看这个:
有没有办法像我在问题中发布的那样,分成两栏打印?--阿齐姆·费塔
gajydyqb2#
我想你可能需要一个“SubQuery”。
大概是这样的:
另外,请参见这个问题,它类似于:How to SELECT based on value of another SELECT