Wil*_*ard 3 postgresql select window-functions
我熟悉如何聚合行,如这个答案所示:
我还熟悉如何使用 HAVING 子句过滤聚合结果。
我似乎无法理解(因此它会粘住)是如何根据值或比较其他行来过滤行,而不聚合它们。
我知道答案涉及一些有关窗口函数或窗口子句的内容,事实上我以前已经成功完成过。但我似乎并没有记住它是如何运作的;我觉得我错过了一些基本的东西。
举个例子,信息如下:
fruit_name | some_field
------------+------------
apple | 3.25
apple | 6.8
apple | 0.7
orange | 2.6
banana | 3.5
banana | 2.49
cherry | 1
grapefruit | 2.6
grapefruit | 2.7
Run Code Online (Sandbox Code Playgroud)
我想要获取行数(按水果名称)大于 1 的所有行,因此它应该如下所示:
fruit_name | some_field
------------+------------
apple | 3.25
apple | 6.8
apple | 0.7
banana | 3.5
banana | 2.49
grapefruit | 2.6
grapefruit | 2.7
Run Code Online (Sandbox Code Playgroud)
执行此操作的正确惯用方法是什么?
(如果可能的话,我想要一个 SQL 标准答案,如果有一种更简单的 Postgres 特定方法来做到这一点,我也想知道。)
Select fruit_name, some_value
From tooty_fruity
where fruit_name in (
Select fruit_name from tooty_fruity
Group by fruit_name
having count(*) > 1)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1855 次 |
最近记录: |