1
Select id,count(*) as totalX FROM my_table WHERE x_factor = 1 GROUP BY id
结果集:
id totalX
--------- --------------
9 34
10 6
11 21
12 3
2
Select id,count(*) as totalY FROM my_table WHERE y_factor = 1 GROUP BY id
结果集 2:
id totalY
--------- --------------
9 334
10 56
11 251
12 93
有什么方法可以实现这一点:
id totalX totalY
--------- -------------- --------------
9 34 334
10 6 56
11 21 251
12 3 93
我想要 RHEL 5 上的 Sybase 12.5 的解决方案,我也想知道这在任何其他数据库系统中是否可行。
---感谢您的回答--
Comparing EXECUTION TIME: (For a certain query)
Query 1:
Execution Time 61.
SQL Server cpu time: 6100 ms. SQL Server elapsed time: 12133 ms.
Query 2:
Execution Time 53.
SQL Server cpu time: 5300 ms. SQL Server elapsed time: 12090 ms.
Query X(1+2):
Execution Time 84.
SQL Server cpu time: 8400 ms. SQL Server elapsed time: 21456 ms.
通过对列使用 CASE/WHEN 并根据 true/false 对 1 或 0 求和,您可以在同一个查询中获得这两个值...此外,如果您想要另一个值中某个值的总和,您可以执行相同的操作列...只需将其替换为真实值而不是 1。
select
id,
sum( CASE WHEN x_factor = 1 THEN 1 ELSE 0 END ) as X_Count,
sum( CASE WHEN y_factor = 1 THEN 1 ELSE 0 END ) as Y_Count
from
yourTable
group by
id
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)