我是SQL的新手(使用SQLiteStudio),我正在尝试使用一些聚合函数。我想找到我的数据子集的比例,其中个体的质量小于575,但查询保持返回零:
SELECT A/B*100
FROM (
SELECT COUNT(*) AS A
FROM Male
WHERE mass < 575 AND location = 'Hawaii')
,(
SELECT COUNT(*) AS B
FROM Male
WHERE location = 'Hawaii')
;
我已经阅读了其他问题,其中问题是必须将有问题的变量声明为小数,但我不知道如何更改COUNT()函数的约束。乘以A * B效果很好。
答案 0 :(得分:2)
您可以将查询简化为一个select语句,并通过乘以100.0强制转换,其中.0应该可以做到这一点
SELECT
(SUM(CASE WHEN mass < 575 THEN 1 ELSE 0 END) * 100.0) / COUNT(*)
FROM Male
WHERE location = 'Hawaii'
答案 1 :(得分:1)
尝试
SELECT A * 100 / B
由于整数除法,或中间结果为0。