gpt4 book ai didi

sql - 查找SQL Server中派生表的记录数

转载 作者:行者123 更新时间:2023-12-02 18:51:42 26 4
gpt4 key购买 nike

CREATE  TABLE   Temp
(
ID Int IDENTITY,
Name Varchar(100)
)

INSERT INTO Temp
SELECT 'Elby'
UNION ALL
SELECT 'Eljo'
UNION ALL
SELECT 'Elsy'
UNION ALL
SELECT 'Elsy'
UNION ALL
SELECT 'Eljo'
UNION ALL
SELECT 'Elsy'
UNION ALL
SELECT 'Elsy'

我需要的输出是..

    ----------------------------------------
TotalRecordCount ID Name
----------------------------------------
7 5 Elby
7 6 Eljo
7 7 Elsy
7 8 Elsy
----------------------------------------

我的查询是...

SELECT  TotalRecordCount,
ID,
Name
FROM (
SELECT *
FROM Temp
) Tab1
WHERE ID > 4

我的问题是,如何找到“TotalRecordCount”字段的值。它是表“Temp”的总数。

我无法使用“SELECT COUNT(*) FROM Temp AS TotalRecordCount”之类的查询,因为它不是单个表。

就像(SELECT * FROM Table1 JOIN TABLE2 ON (Table1.ID = Table2.ID) JOIN TABLE3 ON (TABLE2.ID = TABLE3.ID) JOIN TABLE4 ON (TABLE3.ID = TABLE4.ID) ..... )

为了便于您理解,我使用“temp”而不是整个查询。

最佳答案

您可以使用 CTE 和窗口函数来执行此操作,以避免第二次扫描表:

WITH Counts AS(
SELECT ID,
[Name],
COUNT(*) OVER () AS TotalRows
FROM dbo.Temp)
SELECT TotalRows,
ID,
[Name]
FROM Counts
WHERE ID > 4;

关于sql - 查找SQL Server中派生表的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56645746/

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