Sql 将总计添加到每行的末尾

Sql 将总计添加到每行的末尾,sql,count,Sql,Count,我有一个包含15行的表,其中一列包含Yes或No 我试图做的是在Select*查询的末尾添加一个total列,该列将在包含Yes的每一行上显示Yes结果数,在包含No的每一行上显示No结果数 有8行带有Yes,7行带有now。因此,我希望在该特定字段中包含“是”的每一行的最后一列都有数字8,每个“否”都有数字7 我不确定我是否已经解释得特别好,但以下是我到目前为止的情况: SELECT *, COUNT(Approved) OVER () as 'Count_Approved' FROM A

我有一个包含15行的表,其中一列包含Yes或No

我试图做的是在Select*查询的末尾添加一个total列,该列将在包含Yes的每一行上显示Yes结果数,在包含No的每一行上显示No结果数

有8行带有Yes,7行带有now。因此,我希望在该特定字段中包含“是”的每一行的最后一列都有数字8,每个“否”都有数字7

我不确定我是否已经解释得特别好,但以下是我到目前为止的情况:

SELECT *,
COUNT(Approved) OVER ()  as 'Count_Approved'
FROM 
Approvals
每行总共有15个,所以我缺少一些基本的东西

关于格式也很抱歉,我不知道如何使它看起来很好

干杯


CJ

您可以尝试在
Approved
列上使用分区计数:

SELECT *,
    COUNT(Approved) OVER (PARTITION BY Approved) AS Count_Approved
FROM 
    Approvals
ORDER BY
    Site_Code;

您从未告诉我们您使用的是什么数据库,但上面的是ANSI SQL,应该适用于大多数数据库。

您可以尝试使用
Approved
列上的分区计数:

SELECT *,
    COUNT(Approved) OVER (PARTITION BY Approved) AS Count_Approved
FROM 
    Approvals
ORDER BY
    Site_Code;

您从未告诉我们您使用的是什么数据库,但上面的是ANSI SQL,应该适用于大多数数据库。

不清楚您在寻找什么,但我猜是

select Approved, count(Approved) over (PARTITION BY Approved) [Count] from  Approvals
结果:

Approved    Count
Now         2
Now         2
Yes         3
Yes         3
Yes         3

不清楚你在找什么但我猜是

select Approved, count(Approved) over (PARTITION BY Approved) [Count] from  Approvals
结果:

Approved    Count
Now         2
Now         2
Yes         3
Yes         3
Yes         3

谢谢你,蒂姆。是的,是SQL 2008。这个查询很有效,但现在唯一的问题是它现在是按Count_Approved结果排序的-所以我有7行No,然后是8行Yes。我需要他们保持原来的顺序。@CJD哪一列定义了原来的顺序?我知道我可以通过站点代码来执行订单,但有没有办法不执行该命令?@CJD没有,确保结果集顺序的唯一方法是通过order By。所以这可能是您必须使用的。太好了,非常感谢。我认为可能是这样的,但我很好奇,因为我被告知有一种方法可以做到这一点。不过,按订单似乎是最简单最快捷的方式。谢谢蒂姆。是的,是SQL 2008。这个查询很有效,但现在唯一的问题是它现在是按Count_Approved结果排序的-所以我有7行No,然后是8行Yes。我需要他们保持原来的顺序。@CJD哪一列定义了原来的顺序?我知道我可以通过站点代码来执行订单,但有没有办法不执行该命令?@CJD没有,确保结果集顺序的唯一方法是通过order By。所以这可能是您必须使用的。太好了,非常感谢。我认为可能是这样的,但我很好奇,因为我被告知有一种方法可以做到这一点。不过,点菜似乎是最简单、最快捷的方式。非常感谢@Yogesh Sharma。非常感谢@Yogesh Sharma。