0

我一直在玩一个大型数据库,在该数据库上我完成了许多汇总统计。我忍不住想,一定有比我正在做的更快的方法。

以以下查询为例:

select count(*), thing1, thing2, thing3 from myTable
group by thing1, thing2, thing3

在此处输入图像描述

1=真,0=假。如果我想从数据集中添加一个局部变量(例如select @total=count(*) from peopleTable)并将每一行除以@total,是否有一个典型的 SQL 解决方案?我知道如何在每行的基础上做到这一点,但不是像这样一次性完成。

4

1 回答 1

2

编辑:

现在我想你想要这个:

DECLARE @total int;
SET @total = (SELECT COUNT(*) FROM peopleTable)
SELECT COUNT(*) AS count_column
     , CAST(COUNT(*) AS float) / @total AS percent_total
     , @total AS total_ppl
     , thing1, thing2, thing3 
FROM myTable
GROUP BY thing1, thing2, thing3

此查询为您提供了 COUNT 条分组记录、关于总 ppl 和总 ppl 的百分比计数。

于 2012-05-17T15:36:29.833 回答