首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取匹配行的计数并将其更新到表中?

如何获取匹配行的计数并将其更新到表中?
EN

Stack Overflow用户
提问于 2017-06-29 10:49:08
回答 3查看 57关注 0票数 0

提前谢谢你。

我有一个table1:

代码语言:javascript
复制
ID   ||   Values1   ||   Values2 ||
1    ||   ABC0001   ||    layer1 ||
2    ||   ABC0001   ||    layer1 ||
3    ||   ABC0001   ||    layer1 ||
4    ||   ABC0001   ||    layer1 ||
5    ||   ABC0001   ||    layer1 ||
6    ||   ABC0001   ||    layer1 ||
7    ||   ABC0001   ||    layer1 ||
8    ||   ABC0001   ||    layer1 ||
9    ||   ABC0002   ||    layer1 ||
10   ||   ABC0002   ||    layer1 ||
11   ||   ABC0002   ||    layer1 ||
12   ||   ABC0002   ||    layer1 ||

我需要找到、Values1、和update的不同计数。( values1栏的计数不超过12)

这张桌子上只有12张唱片。对于Exmaple,如果它只有一个values1 (如ABC0001 )的分词集,那么它应该给我计数为12并在新行中更新它,但是如果它们超过一个(ABC0001和ABC0002) Values1,那么它应该给出values1的单独计数。

产出:

table2:

代码语言:javascript
复制
 values1   ||   Count
 ABC0001   ||   8
 ABC0002   ||   4

我试着用case语句来做这件事,但是做不到。

我正在使用MSSQL 2012预先谢谢您。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-29 10:58:49

按条款使用组:

代码语言:javascript
复制
SELECT Values1 , COUNT(Values1)
FROM your_table
GROUP BY Values1 
票数 1
EN

Stack Overflow用户

发布于 2017-06-29 11:38:59

下面您可以找到完整的答案,并更新另一个表:

代码语言:javascript
复制
-- insert output into temp table
SELECT Values1 , COUNT(Values1) as Count
into #temp
FROM your_table
GROUP BY Values1 
GO

-- update second table based on values from above output
update b
set Count = t.Count
from your_table2 b
    inner join #temp t
    on b.Values1 = t.Values1

-- drop temp table
drop table #temp
票数 1
EN

Stack Overflow用户

发布于 2017-06-29 11:46:57

使用窗口函数可以得到结果。

代码语言:javascript
复制
SELECT DISTINCT Values1,
     COUNT(Values2) OVER(PARTITION BY Values1) As COUNTS 
FROM YourTablename

结果

代码语言:javascript
复制
Values1 COUNTS
--------------
ABC0001 8
ABC0002 4
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44823085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档