SQL查询以选择每种类型中的一种

SQL查询以选择每种类型中的一种,sql,Sql,假设我有这张桌子: id colorName 1红色 2蓝色 3红色 4蓝色 如何选择每种颜色的一个代表性? 结果: 1红色 2蓝色不是随机代表,而是 select color, min(id) from mytable group by color; 试试这个: SELECT colorName, MIN(id) AS id FROM table GROUP BY colorname 在MS SQL Server和Oracle中: SELECT id, colorNa

假设我有这张桌子:

id colorName
1红色
2蓝色
3红色
4蓝色

如何选择每种颜色的一个代表性?
结果:
1红色

2蓝色不是随机代表,而是

select color, min(id)
from   mytable
group by color;
试试这个:

SELECT colorName,  
MIN(id) AS id  
FROM table  
GROUP BY colorname  

MS SQL Server
Oracle
中:

SELECT  id, colorName
FROM    (
        SELECT  id, colorName,
                ROW_NUMBER() OVER (PARTITION BY colorName ORDER BY id) AS rn
        FROM    colors
        ) q
WHERE   rn = 1

以下是最简单的方法:

SELECT DISTINCT colorName FROM mytable ORDER BY colorName

按id从表ORDER中选择不同的colorname;(如果需要,将id更改为colorname)


按colorname从表组中选择colorname

您需要在括号后加上别名才能在MS上使用SQL@ArjanEinbu但是,这种使用分析函数的方法在实践中通常要灵活得多,而且在查询变得更复杂时也更容易调试。@Quassnoi MIN将使用其他字段(
SELECT name,MIN(id)),如果您使用的是MySql(至少是5.7版),请按名称从颜色组中进行说明。是否应该是另一回事,但由于MySql在版本8之前不支持分析函数,我将给它们一个pass@ColinYoung会的,尽管不能保证该字段将来自哪个记录be@Quassnoi很公平。MySql有一些。。。有趣的。。。关于SQL的想法。
SELECT DISTINCT colorName FROM mytable ORDER BY colorName