q1577271837 发表于 2022-11-2 21:51

mysql排序函数问题

本帖最后由 q1577271837 于 2022-11-2 21:52 编辑

使用排序函数根据表中的did对表排序,为啥会排出三个一样的,不是应该按照大小顺序排列吗(这里的图片不是根据did排序的,但是排序的结果是一样的 都是这样)

cshadow 发表于 2022-11-2 23:32

你可以看一下mysql窗口函数的语法 https://dev.mysql.com/doc/refman/8.0/en/window-functions-usage.html   “If OVER() is empty, the window consists of all query rows and the window function computes a result using all rows. Otherwise, the clauses present within the parentheses determine which query rows are used to compute the function result and how they are partitioned and ordered”   如果你要使用窗口函数 进行排序的话最好在 over() 中 加入 分区条件或者 排序条件

还来得及。 发表于 2022-11-3 00:16

你这三行代码哪个都没排序好吧??
你图2大概是数据冗余了吧,不知道,你多显示几列不就找到问题了嘛

lix909 发表于 2022-11-3 07:59

over(partition by cno order by degree )

lix909 发表于 2022-11-3 08:01

如果在partition结果上聚合,千万注意聚合函数是逐条累计运行结果的!而在group by后的结果集上使用聚合函数,会作用在分组下的所有记录上

cribber 发表于 2022-11-3 10:11

是不是软件问题,我用的workbench还没遇到这种重复的情况{:1_904:}
页: [1]
查看完整版本: mysql排序函数问题