[英]How can I select unique rows from a table in SQL?
我有一个表格,其中包含艺术家,标题,专辑以及其他日期,IP等列,现在我想连续显示唯一的艺术家标题和专辑,例如:
artist , album, title
a , b , c
a , b , c
d , e , f
a , b , d
然后它必须显示
a,b,c
d,e,f
a,b,d
怎么样?
您可以使用DISTINCT
关键字。
SELECT DISTINCT artist, title, album
FROM YourTable
但是,如果在每一行中重复进行这些设计,就好像您的设计没有被规范化。
(在注释后编辑。)似乎您需要其他列,但是您并不关心这些列中显示了哪些可能的匹配值。 在那种情况下,您可以使用GROUP BY
据我在MySQL中了解的,如果您未在GROUP BY
指定选定的列,您将得到此信息,但在所有其他RDBMS中它完全无效。
SELECT artist,
title,
album,
id,
link,
artistlink,
albumlink,
songlength,
ip,
timestamp,
image
FROM wp_air1nowplaying_unique
GROUP BY artist,
title,
album
ORDER BY artist ASC,
album ASC,
title ASC
在其他RDBMS中,您需要将它们包装在一起。 例如
SELECT artist,
title,
album,
MAX(id) id,
MAX(link) link,
MAX(artistlink) artistlink,
MAX(albumlink) albumlink,
MAX(songlength) songlength,
MAX(ip) ip,
返回的值很可能来自上面的不同行。 为了避免这种情况,您可以使用greatest-n-per-group
查询
SELECT DISTINCT `artist`, `album`, `cover` FROM `yourtable`;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.