我试图弄清楚如何编写一个查询多个列中的值的查询,结果表在每个列中对 任何 列的每个可能值都有一个计数。
示例:说我有 mytable
Source data table:
P1 P2 P3
-----------
a b a
a a a
b b b
a b b
我想要一个查询,在每列中计算a和b,产生类似以下内容的结果:
Desired query output:
P1 P2 P3
-------------
a | 3 1 2
b | 1 3 2
我知道我可以通过 group by 轻松地对单个列执行此操作:
select P1, count(*) as mycounts
from mytable
group by P1
但是是否可以对 每一 列都执行此操作?
我正在使用SQL Server 2008(T-SQL)。在此先感谢您的帮助!
也许是这样的:
首先是一些测试数据:
DECLARE @tbl TABLE(P1 VARCHAR,P2 VARCHAR,P3 VARCHAR)
INSERT INTO @tbl
SELECT 'a','b','a' UNION ALL
SELECT 'a','a','a' UNION ALL
SELECT 'b','b','b' UNION ALL
SELECT 'a','b','b'
然后是一个像这样的枢轴:
SELECT
*
FROM
(
SELECT 'P1' AS P, P1 AS PValue,P1 AS test FROM @tbl
UNION ALL
SELECT 'P2',P2,P2 FROM @tbl
UNION ALL
SELECT 'P3',P3,P3 FROM @tbl
) AS p
PIVOT
(
COUNT(PValue)
FOR P IN ([P1],[P2],[P3])
) AS pvt
这是有关枢轴和非枢轴的更多信息
问题内容: 我有如下的SQL: 并得到结果: 我想总结每个部门的学生人数,如下所示: 我该如何编写sql? 问题答案: 尽管您似乎并未显示所有表格,但我只能假设还有每位学生的实际入学表格 如果您想要与每个学生相关联的每个部门的总数(这没有意义),则可能必须这样做… 我对“姓名”列的解释是学生的姓名,而不是班级实际讲师的姓名,因此,我进行子选择/加入。否则,就像其他人一样,只需要使用COUNT(*)
我有以下代码。。。 } ...如果我想返回与WHERE条件匹配的行的总数,这样做很好。 但是,我只想计算这3列中具有不同/唯一数据组合的记录:C_URI、C_BYTE_START_NUM和C_NUM_BYTES。 我知道我可以做一些像。。。 ...但是我希望在这种情况下有更有效的方法来执行不同的计数?? 为了增加清晰度,如果我的表中有这些数据… C_URI |C_BYTE_START_NUM |C
问题内容: 我正在尝试转换此查询(已经可以使用) 对于Linq to SQL,但我不知道自己在做什么错。看我的尝试 我只需要对建筑物进行分组并计算每个建筑物有多少用户。 问题答案: 只需使用以下方法:
问题内容: 我已经写了这个并且在Oracle中成功执行了 我正在尝试在SQL Server中获得相同的结果(我们的源数据库使用Oracle,但我们的仓库使用SQL Server)。 我知道SQL Server 2008中的窗口函数不支持该功能-有人可以建议替代方法吗? 问题答案: 这是我最近遇到的。我从这篇文章中得到了它。到目前为止,它对我来说真的很好。
问题内容: 我有一个看起来像这样的模型: 我想要为每个类别选择项目的计数(只是计数),因此在SQL中,它会像这样简单: 有没有相当于做这种“ Django方式”?还是纯SQL是唯一的选择?我熟悉Django中的count()方法,但是我看不出group by如何适合那里。 问题答案: 正如我刚刚发现的,这里是如何使用Django 1.1聚合API进行此操作:
问题内容: 我试图在多列中计数,然后按总和将相同数据显示在任何列中 我希望它显示如下内容: 问题答案: 您可以使用联合查询