[英]MySQL group by without column name
我有一个包含用户信息的表。
mysql> desc accounts;
+-------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------+------+-----+---------+----------------+
| cid | int(11) | NO | PRI | NULL | auto_increment |
| username | text | YES | | NULL | |
| password | text | YES | | NULL | |
| mysignature | text | YES | | NULL | |
| is_admin | varchar(5) | YES | | NULL | |
+-------------+------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
普通的group by语句始终跟随一个或多个列名,如下所示:
select * from accounts group by cid;
只是一个示例,通常group by
使用诸如sum()
类的Aggregate函数。
我发现一些不符合我无法理解的列名的表达式:
mysql> select username from accounts group by now();
+----------+
| username |
+----------+
| admin |
+----------+
1 row in set (0.00 sec)
我是MySQL的新手。 该查询如何工作? 谢谢。
实际上是表达。 它比较表达式结果而不是分组的列值。
now()
与group by的功能不是很有效。
它将始终从所选数据中返回第一行。
您始终需要在查询的group by
子句中指定列名。 这是分组依据的教程的链接 。 它指定可以与group by一起使用的聚合函数。
now()
与group by return一起,它将从查询中选择数据并与第一行匹配,并且它将是第一行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.