繁体   English   中英

选择具有随机ID的唯一名称

[英]Select distinct name with random id

我有一个带有ID和名称的表格(一堆与此查询无关的其他内容)。 现在,我需要一个SQL语句,该查询针对每个不同的名称返回一行,在该行中,我需要名称和一个ID(可以是任何ID)。

该表看起来像这样:

id | name
---+-----
 1 | a2
 2 | a2
 3 | a4
 4 | a4
 5 | a2
 6 | a3

顺便说一句。 使用Postgres 8.4

尝试将各种分组或自我结合在一起。 如果不创建额外的表,这是否有可能?

任意选择返回每个名称的最小ID。

SELECT name, MIN(id)
    FROM YourTable
    GROUP BY name

您可以查看PostgreSQL Wiki 它显示了如何选择随机行。

您可以使用random()函数通过SELECT ORDER BY子句选择随机行。 例:

SELECT id FROM mytable ORDER BY random()

然后,您可以使用GROUP BY选择不同的名称。 您可能需要使用LIMIT子句来限制结果。 因此查询看起来像这样:

SELECT id, name FROM table_name GROUP BY name ORDER BY random() LIMIT 1
select ID, name from table group by name;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM