当前位置: 首页 > 面试题库 >

如何获得最频繁的值SQL

惠翰藻
2023-03-14
问题内容

我有一个表Orders(id_trip,id_order),表Trip(id_hotel,id_bus,id_type_of_trip)和表Hotel(id_hotel,name)。

我想在表Orders中获得最常入住的酒店的名称。

SELECT hotel.name from Orders
 JOIN Trip
 on Orders.id_trip = Trip.id_hotel
 JOIN hotel
 on trip.id_hotel = hotel.id_hotel
  FROM (SELECT hotel.name, rank() over (order by cnt desc) rnk
          FROM (SELECT hotel.name, count(*) cnt
                  FROM Orders
                 GROUP BY hotel.name))
 WHERE rnk = 1;

问题答案:

分布中的“最常出现的值”是统计学中的一个不同概念,带有一个技术名称。它称为发行版的MODE。Oracle具有此STATS_MODE()功能。https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions154.htm

例如,使用EMP标准SCOTT架构中的表,select stats_mode(deptno) from scott.emp将返回30-拥有最多员工的部门编号。(30是部门的“名称”或编号,不是该部门的员工人数!)

在您的情况下:

select stats_mode(h.name) from (the rest of your query)

注意 :如果两个或多个酒店并列为“最频繁”酒店,STATS_MODE()则将返回其中一家(不确定)。如果需要所有绑定值,则将需要其他解决方案-
文档中有一个很好的例子(上面链接)。这是Oracle理解和实施统计概念的一个已记录的缺陷。



 类似资料:
  • 问题内容: 我有一个数字数组,我想知道该数组中哪个数字最常见。数组有时有5-6个整数,有时有10-12个,有时甚至更多- 数组中的整数也可以不同。因此,我需要一个可以与数组的不同长度和值一起使用的函数。 一个例子: 另一个例子: 现在,我正在寻找一个给出0(在第一个示例中)的函数,因为它在此数组中是3倍,而数组中的另一个整数(1)在数组中仅是2倍。或第二个例子是4。 看起来很简单,但是我找不到解决

  • 问题内容: 我想与Lucene交流一些经常出现的短语。我从TXT文件中获取了一些信息,并且由于没有短语信息而失去了很多上下文,例如“信息检索”被索引为两个单独的词。 怎样获得这样的短语?我在互联网上找不到任何有用的东西,所有的建议,链接,提示,尤其是示例都值得赞赏! 编辑: 我只按标题和内容存储我的文档: 因为对于我而言,最重要的是文件的内容。标题通常根本不是描述性的(例如,我有很多PDF学术论文

  • 问题内容: 如何在SQL表的给定列中找到最频繁的值? 例如,对于该表,它应该返回,因为它是最频繁的值: 问题答案: 替换和。如果要查看列的最常用值,请增加。

  • 问题内容: 如何获取BigDecimal变量可以容纳的最大可能值?(最好以编程方式,但也可以进行硬编码) 编辑 好,因为BigDecimal是任意精度,所以才意识到没有这种事情。因此,我最终得到了这个结果,它对于我的目的来说足够大: 问题答案: 它是一个任意精度的类,它将达到您想要的大小,直到您的计算机内存不足。

  • 问题内容: 这个问题已经在这里有了答案 : 使用Java在原始数组中查找最大值/最小值 (15个答案) 5年前关闭。 这是我的代码。我需要获取数组的最小值,最大值才能为我获取范围,无论何时输入数字,最小值均为0。请帮助我。谢谢:) 问题答案: 同样,通过更改较小的符号可以找到最小值。

  • 我有一个名为product的MongoDB集合,其中包含以下文档,如下所示。 我想查询收款情况,只退回价格最低的单据,例如: 但当我运行聚合查询时: 它只返回一个文档。