Mysql GROUPBY子句帮助

Mysql GROUPBY子句帮助,mysql,group-by,Mysql,Group By,$construct=nid>1的nid从mytable组中选择* mytable: +----+----------+ | id | nid | +----+----------+ | 1 | null | | 2 | 1 | | 3 | 1 | | 4 | 1 | | 5 | 2 | | 6 | 2 | | 7 | 3 | | 8 | 3 | | 9

$construct=nid>1的nid从mytable组中选择*

    mytable:
+----+----------+
| id |    nid   |
+----+----------+
|  1 |     null |
|  2 |        1 |
|  3 |        1 |
|  4 |        1 |
|  5 |        2 |
|  6 |        2 |
|  7 |        3 |
|  8 |        3 |
|  9 |        4 |
| 10 |        4 |
-----------------
除nid=1外,我如何按nid分组?这是一个简单的例子,但我的代码没有得到预期的结果。对于我要完成的任务,该查询是否正确?

这一点如何:

SELECT * FROM mytable WHERE nid != 1 ORDER BY nid
GROUPBY导致聚合查询,您只能合理地使用聚合函数。例如,选择COUNT*,nid GROUP BY nid将为您提供具有给定nid的行数

更新:我不确定我是否理解你,但是这个怎么样:

(SELECT * FROM mytable WHERE nid = 1 UNION SELECT * FROM mytable WHERE nid != 1 GROUP BY nid) ORDER BY nid
不过,我不确定混合使用聚合查询和非聚合查询是否有意义——在聚合端,您只会得到该组中不确定的代表行

SELECT count(*), nid FROM mytable where nid <> 1 GROUP BY nid;

不确定您使用的是Oracle还是MySQL。

我需要nid=1的结果,但我想对其他匹配的nid进行分组s@user:在某个范围内分组而不是在另一个范围内分组是没有意义的,因为一个查询是聚合,而另一个查询不是聚合。有两个单独的查询不是更合适吗?也许可以用一个最大限度简化的例子更详细地描述你的目标。一个查询不可能吗?可能是一个连接查询?@user:可能是一个联合,但它在语义上没有意义。你想干什么?
…
GROUP BY CASE nid WHEN 1 THEN -id ELSE nid END
…
…
GROUP BY CASE nid WHEN 1 THEN -id ELSE nid END
…