簡體   English   中英

只選擇一個不同的列

[英]Select only one distinct column

我想這是一個很容易解決的問題,但我正在研究一小時的答案。 我有一個包含三列的表:“id”,“id_x”和“name”。 但它有重復的值,如下所示:

id  id_x    name
1   100     Name_aaa
2   100     Name_aaa
3   100     Name_aaa
4   100     Name_aaa*
5   101     Name_bbb
6   101     Name_bbb*

好吧,好吧,我沒有創建這個表,我也無法修改它們......我只想知道我可以執行什么查詢只返回值“100 - Name_aaa”和“101 - name_bbb”......請注意,在某些名稱后面有一個“*”。 我想只用“id_x”分組。

有沒有辦法在不使用子查詢或連接的情況下執行此操作?

提前致謝!

有點未經測試,但這應該做到

select id_x, min(name) as name
from table
group by id_x

嘗試這個,

從表名中選擇不同的id_x,名稱

select distinct
         id_x,
         case when name ~ E'\\*$' then substring(name, 1, length(name)-1)
              else name end
from t;

或者

SELECT DISTINCT ON (id_x) id_x, name FROM table ORDER BY id_x, name;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM