gpt4 book ai didi

SQL 更新不适用于 Group by

转载 作者:行者123 更新时间:2023-12-04 23:46:48 24 4
gpt4 key购买 nike

尝试制作一个表格来计算我的问题数量并使用正确的 WHERE 子句

   create table #test(
BatchNo int,
Q varchar(MAX),
number varchar(MAX),
DayNo varchar(MAX),
total int
)

INSERT INTO #test ( BatchNo, Q,number, DayNo, total ) VALUES
( 2, 'A','1', '1', NULL ),
( 2, 'A','1', '1', NULL ),
( 8, 'A','3', '1', NULL ),
( 8, 'A','3', '1', NULL ),
( 99, 'A','4', '1', NULL ),
( 200, 'A','3', '1', NULL ),
( 200, 'A','3', '1', NULL ),
( 200, 'A','3', '1', NULL )

我使用这个 UPDATE 是因为出于某种原因 GROUP BY Batchno 不适用于 UPDATE

UPDATE #test set total= (select count(batchno)as total from #test where (number=1 or number=3) and DayNo=1)

select * from #test
drop table #test

我不断得到这个结果

  batchno | Q | number | DayNo | total
2 A 1 1 7
2 A 1 1 7
8 A 3 1 7
8 A 3 1 7
99 A 4 1 7
200 A 3 1 7
200 A 3 1 7
200 A 3 1 7

当我使用“SELECT * FROM #test”时,我想得到看起来像这样的东西

  batchno | Q | number | DayNo | total
2 A 1 1 2
2 A 1 1 2
8 A 3 1 2
8 A 3 1 2
99 A 4 1 null
200 A 3 1 3
200 A 3 1 3
200 A 3 1 3

最佳答案

我想你想要:

UPDATE #test
set total = (select count(batchno)as total
from #test t2
where t2.batchno = t.batchno and (number=1 or number=3) and DayNo=1)
from #test t;

关于SQL 更新不适用于 Group by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48692932/

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