group by 之后的sql返回什么?

问题描述 投票:0回答:1

在此处输入图像描述我想获取 1,3,4,因为它们的 tiv_2015 值多次出现,但我只得到 1。 帮助有需要的人了解在having子句之后select是如何工作的。
按 tiv_2015 从保险组中选择 pid 计数(*) > 1

我也尝试过不使用group by,仍然有1个回来。 从保险中选择pid 计数(tiv_2015) > 1

然后我尝试了下面并得到 10 回来。那么我应该选择出现在 group by 或having 子句中的列并使用外部查询来获取我想要的 pid 吗? 从保险中选择 tiv_2015 计数(tiv_2015) > 1

sql select having
1个回答
0
投票

首先,获取所需的 tiv 值列表,然后获取匹配的 pid:

SELECT pid FROM insurance
WHERE tiv_2015 in 
    (SELECT tiv_2015 FROM insurance GROUP BY tiv_2015 HAVING COUNT(*) > 1);

输出:

1
3
4
© www.soinside.com 2019 - 2024. All rights reserved.