我正在尝试以下但它失败了......我想要的只是一切,但只有不同的名字:
所以,如果我有
NAME A B C D
-------------------
john 5 6 6 7
jack 5 3 2 4
paul 5 7 9 2
john 4 2 3 4
我只想要前三行
select distinct name, * from items order by NAME, D
这可能吗?
答案 0 :(得分:2)
如果您不注意在名称重复的情况下选择了哪些值:
select name,
min(a),
min(b),
min(c),
min(d)
from items
group by name
order by name;
请注意,使用此解决方案,a,b,c,d的值不一定来自同一行!
答案 1 :(得分:2)
示例输入:
Name A B C D
john 5 6 6 7
jack 5 3 2 4
paul 5 7 9 2
john 4 2 3 4
john 5 6 6 7
<强>查询强>
SELECT Name,Max(A) AS A,MAX(B) AS B,MAX(C) AS C,MAX(D) AS D
FROM <your table>
GROUP BY Name
预期输出
Name A B C D
jack 5 3 2 4
john 5 6 6 7
paul 5 7 9 2
答案 2 :(得分:0)
改为使用GROUP BY:
SELECT a.*
FROM items a
INNER JOIN ( SELECT MIN(id) id
FROM items
GROUP BY name
) b
ON a.id = b.id
ORDER BY a.name;
答案 3 :(得分:0)
尝试此查询
select distinct name,A,B,C,D from items group by name order by name
答案 4 :(得分:0)
试试这个:
如果您有重复的名称,这将选择任何一条记录
select slno,name,A,B,C,D
from
( SELECT @i:=@i+1 AS slno,t.*
FROM items t ,(SELECT @i:=0) r )a
group by name
having slno=min(slno)