SQL 仅列出唯一/不同的值
SQL list only unique / distinct values
我有一个 table,其中包含几何线条(方式)。有些线条具有独特的几何形状(不重复),有些线条具有相同的几何形状(2、3、4 和更多)。我只想列出独特的。例如,如果有 2 条具有相同几何形状的线,我想删除它们。我试过 DISTINCT 但它也显示了重复行的第一个结果。我只想看到独特的。
我尝试了 window 函数,但得到了类似的结果(我在第一行从复制的结果中得到了一个计数器)。很抱歉提出新手问题,但我正在学习 :) 谢谢!
示例:
way|
1 |
1 |
2 |
3 |
3 |
4 |
结果应该是:
way|
2 |
4 |
确实有效。非常感谢。我在这个 table 中还有其他标签用于各种方式(名称、参考和其他一些标签)当我将它们添加到查询中时,我松开了隔离。
select count(way), way, name
from planet_osm_line
group by way, name
having count(way) = 1;
在查询中没有 "name" 时,我会列出所有唯一值,但我想为每一行保留 "name"。通过这个例子,我仍然得到 table 中列出的所有行。
您可以按方式分组,在取出数据时检查计数=1.It 将给出非重复数据。
阐述@Nithila 的回答:
select count(way), way
from your_table
group by way
having count(way) = 1;
您先计算所需的行,然后搜索其余字段。所以聚合不会给你带来问题。
WITH singleRow as (
select count(way), way
from planet_osm_line
group by way
having count(way) = 1
)
SELECT P.*
FROM planet_osm_line P
JOIN singleRow S
ON P.way = S.way
@voyteck
据我了解您的问题,您只需要获取 way 列的非重复记录,并且对于每一行,您需要显示名称
如果是这样,您必须将所有列放在 select 语句中,但不需要按所有列进行分组。
select 计数(方式),方式,名称
来自 planet_osm_line
按方式分组
有 count(way) = 1;
我有一个 table,其中包含几何线条(方式)。有些线条具有独特的几何形状(不重复),有些线条具有相同的几何形状(2、3、4 和更多)。我只想列出独特的。例如,如果有 2 条具有相同几何形状的线,我想删除它们。我试过 DISTINCT 但它也显示了重复行的第一个结果。我只想看到独特的。 我尝试了 window 函数,但得到了类似的结果(我在第一行从复制的结果中得到了一个计数器)。很抱歉提出新手问题,但我正在学习 :) 谢谢!
示例:
way|
1 |
1 |
2 |
3 |
3 |
4 |
结果应该是:
way|
2 |
4 |
确实有效。非常感谢。我在这个 table 中还有其他标签用于各种方式(名称、参考和其他一些标签)当我将它们添加到查询中时,我松开了隔离。
select count(way), way, name
from planet_osm_line
group by way, name
having count(way) = 1;
在查询中没有 "name" 时,我会列出所有唯一值,但我想为每一行保留 "name"。通过这个例子,我仍然得到 table 中列出的所有行。
您可以按方式分组,在取出数据时检查计数=1.It 将给出非重复数据。
阐述@Nithila 的回答:
select count(way), way
from your_table
group by way
having count(way) = 1;
您先计算所需的行,然后搜索其余字段。所以聚合不会给你带来问题。
WITH singleRow as (
select count(way), way
from planet_osm_line
group by way
having count(way) = 1
)
SELECT P.*
FROM planet_osm_line P
JOIN singleRow S
ON P.way = S.way
@voyteck 据我了解您的问题,您只需要获取 way 列的非重复记录,并且对于每一行,您需要显示名称
如果是这样,您必须将所有列放在 select 语句中,但不需要按所有列进行分组。 select 计数(方式),方式,名称 来自 planet_osm_line 按方式分组 有 count(way) = 1;