当前位置: 首页 > 知识库问答 >
问题:

按计数排序相同值

郭志
2023-03-14

我有一张这样的桌子:

ID |  Name  |  Group   

1    Mary      1    

2    Rose      1

3    Rose      2

4    Bob       2

5    Bob       2

我想按组排序,然后按count(名称)排序,然后按rand()排序,结果如下:

ID |  Name  |  Group   

4    Bob       2

5    Bob       2

3    Rose      2

2    Rose      1

1    Mary      1    

我写了这个查询,但是如果我在group和rand之间添加count(Name),它会给我一个坏结果

SELECT * FROM table ORDER BY Group DESC, RAND();

共有1个答案

乐正烨熠
2023-03-14

您可以按顺序使用窗口函数:

order by count(*) over (partition by name) desc,
         name

注意:这不会按名称随机化。如果你真的想这样:

order by count(*) over (partition by name) desc,
         min(rand()) over (partition by name),
         name

在早期版本中,可以使用子查询:

order by (select count(*) from t t2 where t2.name = t.name) desc,
         name
 类似资料:
  • 我使用的是Spring数据JpaRepository,我发现它非常容易使用。我实际上需要所有这些功能——分页、排序、过滤。不幸的是,有一件令人讨厌的事情似乎迫使我退回到普通JPA的使用上来。 我需要按关联集合的大小订购。例如,我有: 我必须按bes排序。size() 是否有办法以某种方式自定义排序,仍然利用分页、过滤和其他Spring Data的强大功能?

  • 问题内容: 我有以下ES内容,基本上是网站中包含嵌套商品的产品列表。 如何按站点详细信息的数量排序? tnx! 问题答案: 从问题的示例来看,它看起来像是单个文档,但是单个json文档不可能在同一级别具有相同名称的多个字段。 因此,假设每个字段代表一个不同的顶级文档

  • 问题内容: 我正在使用Spring Data JpaRepository,发现它非常易于使用。我实际上需要所有这些功能- 分页,排序,过滤。不幸的是,有一件令人讨厌的事情似乎迫使我退回到使用普通的JPA。 我需要按相关集合的大小排序。例如,我有: 我必须排序 有没有办法通过分页,过滤和其他Spring Data强大功能来自定义排序? 问题答案: 关于spring-data,我尚未意识到的第一件事也

  • 本文向大家介绍计数排序,包括了计数排序的使用技巧和注意事项,需要的朋友参考一下 计数排序是一种稳定的排序技术,用于根据较小的键对对象进行排序。它计算键值相同的键的数量。当不同键之间的差异不太大时,此排序技术非常有效,否则会增加空间复杂度。 计数排序技术的复杂性 时间复杂度:O(n + r) 空间复杂度:O(n + r) 输入输出 算法 输入:数据数组,数组中的总数 输出:排序后的数组 示例 输出结

  • 计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。 1. 动图演示 2. JavaScript 代码实现 function countingSort(arr, maxValue) { var bucket = new Array(maxValue+1), sortedIndex =

  • 我有一个pandas数据帧(df),我需要根据列值的计数对其进行排序。列的值是字符串。 例如,目标列的值为橙色、苹果色、香蕉色和桃色。单个计数(df['fruit'].value_counts())为: 香蕉2678 桃2250 橙色1765 苹果1691 结果我需要根据这些计数对初始数据帧(包括所有列等)进行排序。因此,在前2678行中,水果列中的值应为香蕉等