我正在寻找一种方法来显示来自不同组的单行。 我的意思是,如果我有例如表所示:特定数据库搜索
id|name|groupID
1 |....| 1
2 |....| 1
3 |....| 1
4 |....| 2
5 |....| 2
6 |....| 3
7 |....| 4
8 |....| 4
9 |....| 4
它将从每个组ID,一个用于组ID = 1时,一个组ID = 2只显示一个行等等。 非常感谢您的帮助。
我正在寻找一种方法来显示来自不同组的单行。 我的意思是,如果我有例如表所示:特定数据库搜索
id|name|groupID
1 |....| 1
2 |....| 1
3 |....| 1
4 |....| 2
5 |....| 2
6 |....| 3
7 |....| 4
8 |....| 4
9 |....| 4
它将从每个组ID,一个用于组ID = 1时,一个组ID = 2只显示一个行等等。 非常感谢您的帮助。
尝试这种情况:
select *
from tableName
where id in (
select max(id) from tableName group by groupID
)
不要这样做,不可能在同一组中有2个项目 – 2014-12-02 16:42:57
他说:“我正在寻找一种方法来显示单行不同的组“ – MiiinimalLogic 2014-12-02 16:43:33
他不说'我想在我的数据库中存储唯一的groupId' – 2014-12-02 16:44:07
的GROUP BY语句中结合使用与聚合函数组的结果集由一个或多个列。
SQL:
SELECT * FROM my table GROUP BY goupID
返回应该是:
id|name|groupID
1 |....| 1
4 |....| 2
6 |....| 3
7 |....| 4
在表中,一列可能包含许多重复值;有时你只想列出不同的(不同的)值。
SQL:
SELECT DISTINCT(goupID) FROM my table
回报率应会:
groupID
1
2
3
4
希望能够帮助您。
所有最后的ID这不会工作,因为它缺乏一个聚合函数,如上述报价中所述。你可以添加'MIN(id)',但你仍然无法使用'*'。 – 2014-12-02 16:57:22
在MySQL中,查询是有效的并且它运行,但既不在GROUP BY子句中也不用于聚合函数的列的值不可预测。它也可以为'id'返回2,5,6和9。但是,请求是从每个组获取单个行,但它没有指定哪一行,因此此查询足够满足此目的。 – axiac 2014-12-02 16:59:36
@RenéHoffmann这个sql工作,测试一下。 – 2014-12-02 17:00:29
使用group by by SELECT * FROM my table GROUP BY goupID' – 2014-12-02 16:41:37