|
|
1
67
我的答案只基于你文章的标题,因为我不知道C也不理解给定的问题。但在MySQL中,我建议您尝试子选择。首先获取一组感兴趣的列的主键,然后从这些行中选择数据:
|
|
|
2
19
当我写作时
它起作用了。在其他RDBMS中,这样的语句是不可能的,因为不属于分组键的列被引用时没有任何聚合。 这个“怪癖”跟我想要的非常接近。所以我用它得到了我想要的结果:
|
|
|
3
13
这是另一种你可以尝试的方法,不需要那个ID字段。
不过,我还是同意我的看法,即你应该添加一些主键。 同样要注意的是,通过这样做,您不能(很容易)得到其他值与生成的某些列(另一个列对)是同一行!你需要我和一个PK来完成! |
|
|
4
6
您应该使用一些聚合函数来获取所需的其他列的值。也就是说,如果您希望某个列的每个值的另一列的最小值(从数字上或从词典上),则可以使用:
一些希望有用的链接: http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.html http://www.oreillynet.com/databases/blog/2007/05/debunking_group_by_myths.html |
|
5
4
这意味着@jader dias的解决方案不会在任何地方都起作用。
这里有一个解决方案,当
|
|
|
6
1
另一种方法(没有主键)是使用JSON函数:
或5.7.22之前的版本
排序(或筛选)可以在分组之前完成:
…或者分组后(当然):
诚然,它相当复杂,性能可能不太好(没有在大数据上测试它,在我有限的数据集上工作得很好)。 |
|
|
7
1
使用MySQLV8+可以使用窗口函数 |
|
|
8
0
还有另一种方法 从视图中工作的组中选择最大值
|
|
|
9
0
这个怎么样:
|
|
|
10
0
我在答案中没有看到下面的解决方案,所以我想我会把它放在那里。
问题是选择排序时的第一行
下面的解决方案将在MySQL中实现这一点。
有一个
feature request
对于
|
|
|
11
-3
为什么不使用mysql limit关键字?
|
|
|
Bard.Mus · 迁移后的数据库字符集环境 1 年前 |
|
Efannnnnn · 将Id数据存储到任何页面 1 年前 |
|
|
yooooo · 用于在块中删除的存储过程-LOOP未执行 1 年前 |
|
John Beasley · 更新一定数量记录的连续日期 1 年前 |
|
|
ColinM · MySQL以前的结果查询返回不正确的值 1 年前 |
|
Sergey_Z · MySQL只需无条件连接2个表和交叉连接 1 年前 |