如何在SQL中有效地计算列值的出现而不重复?

问题描述 投票:0回答:3

在找到计数时,我算作:

Serial No  |   Countt
------------------------
10467      |     1
10468      |     1
10468      |     2
10469      |     1

我想查询查找计数如下:

Serial No  |  Countt
----------------------
10467      |     1
10468      |     2
10469      |     1

我用下面的查询:

(SELECT Distinct Tax_Percentage, Serial_No, 
COUNT(*) OVER (PARTITION BY Tax_Percentage,Serial_No ) AS Countt
FROM sales_detail Where Serial_No>=10467)
Order By  Serial_No

enter image description here

sql sql-server-2008-r2
3个回答
0
投票

SELECT id,attribute,COUNT(attribute)FROM mytable GROUP BY属性

This can help you


0
投票

试试这个:因为Taxpercent,你知道我们无法获得独一无二的,如果你跳过那一栏就可以轻松获得:

SELECT distinct TaxPrcnt,SrNo,count(CAST(ISNULL(SrNo,0) as int)) OVER(PARTITION BY SrNo 
ORDER BY SrNo) AS Countt
FROM #temp

enter image description here


0
投票

按两列分组

SELECT Tax_Percentage, Serial_No, COUNT(*) Countt 
FROM sales_detail 
Where Serial_No>=10467) 
Group by Tax_Percentage, Serial_No
Order By Serial_No

我不确定你要实现什么,但如果你想找到serial_no的出现,你需要按此列对计数进行分区。

SELECT Tax_Percentage, Serial_No, 
        COUNT(*) over(partition by Serial_No) Countt 
FROM sales_detail 
Where Serial_No>=10467) 
Order By Serial_No
© www.soinside.com 2019 - 2024. All rights reserved.