gpt4 book ai didi

sql-server - T-SQL 获取所有唯一组及其使用计数

转载 作者:行者123 更新时间:2023-12-02 22:00:32 24 4
gpt4 key购买 nike

我如何找到我的表中存在的唯一组,并显示该类型组的使用频率?

例如(SQL Server 2008R2)

Example Data

所以,我想找出有多少次的组合

PMI 100 
RT 100
VT 100

出现在我的表中以及使用了多少个 itemid;

这三个组成一个组,因为它们一起分配给一个 itemid。相同的组合被分配给 id 2527 和 2529,因此这个组至少被使用了两次。 (使用计数 = 2)

(我想知道出现的所有类型的组)

  • 整个数据集非常大,大约有 5.000.000 条记录,所以我想避免使用游标。
  • 每个 itemid 的代码/pct 组合数在 1 到 6 之间变化。
  • “代码”字段中的值是预先不知道的,平均有十几个值

我尝试使用数据透视表,但最终卡住了,我还尝试了 GROUP-BY 和计数的各种组合。

有什么好的想法吗?

示例输出:

code pct groupid usagecount
PMI 100 1 234
RT 100 1 234
VT 100 1 234
CD 5 2 567
PMI 100 2 567
VT 100 2 567
PMI 100 3 123
PT 100 3 123
VT 100 3 123
RT 100 4 39
VT 100 4 39
etc

最佳答案

只使用一个简单的组:

SELECT
code
, pct
, COUNT(*)
FROM myTable
GROUP BY
code
, pct

不太确定这是否更像您正在寻找的东西:

select
uniqueGrp
, count(*)
from (
select distinct
itemid
from myTable
) as I
cross apply (
select
cast(code as varchar(max)) + cast(pct as varchar(max)) + '_'
from myTable
where myTable.itemid = I.itemid
order by code, pct
for xml path('')
) as x(uniqueGrp)
group by uniqueGrp

关于sql-server - T-SQL 获取所有唯一组及其使用计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17023550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com