gpt4 book ai didi

SQL:选择组中包含的行

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

我正在研究 SQL Server 的查询,我想知道是否有人可以给我一些关于选择组成组的各个行的提示(其中组基于聚合函数,在本例中为 COUNT)

因此,作为一个简化的示例,如果我有一个帐单表(如下所示),我想为每个客户选择在特定日期后有 2 个或更多帐单的所有帐单。

ClaimID     ClaimDate             ClientName
101 May 5, 2010 Jim
102 June 19, 2010 Jim
103 August 5, 2008 Jim
104 January 1, 2011 Mary
105 May 8, 2009 Mary
106 November 4, 2010 Mary
107 October 6, 2010 Mary
108 April 4, 2010 Bob
109 April 29, 2009 Bob
110 July 7, 2006 Joe

所以如果我执行

SELECT ClientName, COUNT(ClaimID) FROM Billings
WHERE ClaimDate > '2010'
Group By ClientName
Having COUNT(ClaimID) > 1

我会得到:

Jim  2
Mary 3

这很好,它会找到在时间范围内有 2 个或更多账单的所有客户,但我想实际列出这些账单是什么。所以我想要这个:

ClaimID ClientName  Count
101 Jim 2
102 Jim 2
104 Mary 3
106 Mary 3
107 Mary 3

您认为实现这一目标的最佳方法是什么?

谢谢。

最佳答案

您将其连接回主表。

SELECT B.ClaimID, B.ClaimDate, B.ClientName, G.ClaimCount
FROM
(
SELECT ClientName, COUNT(ClaimID) ClaimCount
FROM Billings
WHERE ClaimDate > '2010'
Group By ClientName
Having COUNT(ClaimID) > 1
) G
INNER JOIN Billings B on B.ClientName = G.ClientName
WHERE B.ClaimDate > '2010'

关于SQL:选择组中包含的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5174473/

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