[英]Using Subqueries to get a percentage from a number of SQL columns
我有一个带有“目标”表的oracle数据库局部缺血,该表有5列:
G_ID - Int
M_ID - Int
G_Method - Text
G_X_Loc - Int
G_Y_Lo - Int
G_Time - Int
G_X_Loc和G_Y_Loc是介于-5和+5之间的整数。 我需要按百分比计算出Y0到Y + 5之间得分了多少个目标,以及Y0和Y-5之间得分了多少个目标。
到目前为止,我已经设法使用以下查询来告诉我0到+5的数字,即56,但是我正在努力将其作为总行数的百分比(107)。
Select COUNT(G_ID) AS Y_POS_GOALS
FROM GOALS
WHERE G_Y_LOC IN (Select G_Y_LOC
FROM GOALS
WHERE G_Y_LOC BETWEEN 0 AND 5)
有人可以指导我寻求更好的方法吗?
SELECT AVG( CASE WHEN g_y_log >= 0 THEN 100 ELSE 0 END ) AS g_y_positive_percentage,
AVG( CASE WHEN g_y_log <= 0 THEN 100 ELSE 0 END ) AS g_y_negative_percentage
FROM goals;
我不知道Oracle Apex,但是下面的查询是标准SQL,可以在Oracle和大多数其他RDBMS中运行:
select
count(*) as total,
count(case when g_y_loc between 0 and 5 then 1 end) as cnt_pos,
count(case when g_y_loc between -5 and 0 then 1 end) as cnt_neg,
count(case when g_y_loc between 0 and 5 then 1 end) / count(*) * 100 as prz_pos,
count(case when g_y_loc between -5 and 0 then 1 end) / count(*) * 100 as prz_neg
from goals;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.