问题标签 [top-n]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 获取 SUM 生成的新列的前 10 名的 SQL 查询
我有一个看起来像这样的查询:
如何显示前 10 个总数?
sql-server - NHibernate 使用 fetch 选择带有条件的前 N 个子项
我有简单的用户实体:
我的映射定义如下:
此处的其他约定:
我需要选择前 100 名使用电话且名称以“A”开头的用户。但我需要在其中加载带有电话的用户对象。
所以我做这个查询:
而我只有 72 个用户。
为什么?好吧,因为 NHibernate 使用左外连接生成单个 TOP N 选择,并且 SQL 返回同一用户实体的多条记录,因为某些用户确实拥有不止一部手机。但这都是针对 TOP N 的——所以我得到了 100 条与手机连接的用户记录,但其中只有 72 条是唯一实体。
有正确的方法吗?
java - 选择具有标准的Java模型列表中的前n个元素元素
我有一个这样的 MySQL 表
对于我的所有用户,我想随机选择 n 个信息(比如 1 个),或者使用一个标准。我知道当表很大时它在纯 MySQL 中非常密集(我尝试了这个解决方案http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-每组-in-sql/ )
在 Java 中,我查询整个表,并将数据放在 a 中List<ModelData>
,其中ModelData
是简单的模型,只有 getter 和 setter。什么是剥离这个列表的最佳方法,所以最后我会:
oracle - 访问 ID 列表时的前 N 个查询性能
我有一个前 N 个查询给我带来了问题。
首先,我有如下查询:
此查询运行良好。它可以非常有效地为我找到海量数据集的前 10 行,使用关于 Mercer_id、subscription_status、transaction_date 的索引。
如您所见,每个阶段的估计实际行数为 10,这是正确的。
现在,我需要获取一组商家 ID 的前 N 条记录,因此如果我将查询更改为包含两个商家 ID,则性能坦克:
现在请注意,有 42K 行来自两次索引范围扫描——当索引范围扫描达到 10 行时,Oracle 不再中止索引范围扫描。我认为会发生的是,Oracle 最多会为每个 Mercer_id 获取 10 行,因为知道查询最多将返回 10 行。然后它会根据交易日期对 10 + 10 行进行排序并输出前 10 行,但它拒绝这样做。
当我需要将商家列表传递到查询中时,有谁知道如何获得第一个查询的性能?我可能可以使用 union all 获得性能,但商家列表是可变的,可能介于 1 或 2 到几百个之间。
sql - 前 N 个聚合子查询
假设我有一张名为 COFFEE 的表格,其中显示了公交车站和公交车站 10 个街区内的所有咖啡店:
[编辑:明确问题是如何通过非程序查询来做到这一点]
而且我必须编写一个查询(而不是 proc)来显示每个公交车站到最近的五家咖啡店的平均距离。
我可以找到特定巴士站的前 5 家最近的咖啡店:
但是如何将其连接为子查询并使 AvgDistToFiveClosest 成为我的主查询中返回的列:
鉴于上面的示例数据,查询应返回:
r - 如何从数据框中按降序获得前 n 家公司
我正在尝试从数据框中获取前“n”家公司。下面是我的代码。
现在我想从这个排序的向量中获得前 50 个观察值。
c++ - 在我的朋友网络中找到最受欢迎的赞
我正在努力寻找在我的朋友网络中最受欢迎的点赞。“在我的朋友网络中最受欢迎”被定义为“被我的朋友点赞最多的人”。
假设每个朋友都有一个唯一的 id 并且有许多喜欢的页面。所以,给定一组这样的朋友,我想找到最多的朋友点赞的,以及喜欢这个东西的朋友。本质上,我想展示“你的朋友 X、Y 和 Z 喜欢这个”之类的内容。
我的第一个解决方案是使用 Map(用于存储反向映射:like->set)和 Priority Queue(用于查找前 N 个)。这是我的算法(使用 C++ STL):
由于 STL 内部使用红黑树来实现优先级队列的映射和最小/最大堆,这种方法对我来说似乎很快。但是如果我有 100 个朋友,每个人都有 100 个喜欢,那么内存使用量会很大。当然,我应该使用朋友 id 和点赞 id 来进行所有计算,而不是存储整个对象,这会大大减少内存使用量。
还有哪些算法或数据结构可以用来提高效率(提高速度,减少内存)?出于某种原因,我无法针对每个喜欢存储朋友列表,它必须在运行时计算。我正在使用 C++ 开发它,因此使用 STL 或 boost 的解决方案会更好。
sql - Oracle SQL:为每个 id 显示 n 行
我有一个包含 2 列 ID 和 URLS 的表,每个 ID 都有几个 URLS。我只想为每个 ID 提取最多 5 个 URL。如何在 Oracle SQL 中执行此操作?
mysql - 关于这些的 SQL 问题
我有 4 张桌子。一种叫做艺术家。这是表结构:
另一张表称为工作
转表
客户表
第一个问题是哪位艺术家的作品售出最多,以及该艺术家的作品已售出多少。
我的 SQL 查询如下
我要得到整张桌子,但我只想显示最高计数的第一行 - 我该怎么做?
qns 2 是哪位艺术家的作品获得最高平均利润的销售额(即艺术家每次销售作品所获得的平均利润),以及该金额是多少。
我的 SQL 查询如下
我无法执行它
sql - Oracle中如何显示最高值的记录?
我有 4 个具有以下结构的表:
表artist
:
表work
:
表Trans
:
表Customer
:
第一个问题是哪位艺术家的作品最多,artsold
以及有多少艺术家的作品被售出。
我的 SQL 查询是这样的:
我要得到整张桌子,但我只想显示最高计数的第一行我该怎么做?
我已尝试插入WHERE ROWNUM <=1
,但它显示艺术家 ID 为 1
qns 2 是哪位艺术家的作品获得最高平均利润的销售额(即艺术家每次销售作品所获得的平均利润),该金额是多少。
我的 SQL 查询是:
我无法执行它
我已经尝试了下面的查询,但仍然无法得到它不断收到错误丢失右括号