问题标签 [limit-per-group]
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 - 每组最近 N 条记录的平均值
我当前的应用程序根据每个用户的所有记录计算点平均值:
业务需求发生了变化,我需要根据每个用户的最后 30 条记录计算平均值。
相关表的结构如下:
表:玩家;列:player_id、user_id、match_id、点
表:用户;列:user_id
以下查询不起作用,但它确实演示了我试图实现的逻辑。
是否有一种相当有效的方法可以根据每个用户的最新 30 条记录计算平均值?
mysql - 限制组中的每个组
现在我知道这已经被问过好几次了,但是我已经尝试将不同的现有解决方案应用于我的特定问题很长一段时间没有成功。所以我转过来希望得到一些指导。
我有一个名为 tblanswers 的表,其中包含链接到另一个表中不同问题的答案。我想要的是获取特定问题 ID 的每个答案的计数,但将其限制为每个月的 n 个第一个答案。
来自 tblanswers 的样本数据:
这是我到目前为止的查询:
那会给我这样的东西:(样本数据中的日期和数字不准确)
假设我只想看一个月内的前三个答案,那么 count 永远不会超过 3。我该如何限制每个月?
最终数据应该是每个答案的总和,如下所示:
我认为这些解决方案之一可以工作,但不是如何: http: //code.openark.org/blog/mysql/sql-selecting-top-n-records-per-group http://code.openark.org/博客/mysql/sql-selecting-top-n-records-per-group-another-solution
任何帮助表示赞赏。谢谢!
sql - 如何选择每组的前 N 行?
我有两个这样的 SQLite 表:
我想做一个 SELECT 查询,它将返回每个 AuthorId 的前 N 行(例如两行),按标题排序(“选择每个作者的前两本书”)。
样本输出:
如何构建此查询?
(是的,我找到了一个类似的主题,我知道如何只返回一行(第一行或顶部)。问题出在这两个上)。
sql - SQL Query 为每个项目提取一定数量的结果
我正在寻找一种更好的方法来生成仅使用 sql 而不是 C# 的列表。看起来很简单,我做错了
假设我有一个名为 PhoneNumbers 的表,其中包含 Number/City/State
示例(但数百万个数字):
我需要一个从每个州返回 10 个电话号码的查询
现在我单独对所有 50 个状态运行查询,然后将它们组合到一个数据集中,但它是一个大数据库,所以它很慢,我希望有一个简单的方法来拉回我需要的数据。
sql - SQLite - 按长度排序的 5 个不同组中的前 10 个
我阅读了许多带有best-n-per-group标签的问题,但我找不到比UNION ALL
这个 SQL 查询的技巧更好的解决方案:
我想为五个不同的组(GRP01%、GRP04%、GRP12%、GRP15%和GRP20%)选择十个最长的工作。
我正在使用 SQLite。和列中的
元素采用 ISO 8601 格式。
我用来计算每个工作的长度,然后是每个组。Start
End
(strftime('%s', End) - strftime('%s', Start)) as Length
ORDER BY Length DESC LIMIT 10
您知道执行此查询的最简单/更好的方法(使用 SQLite)吗?
php - Laravel:hasMany() 和 take() 仅适用于第一个结果
我有以下型号。
在这个例子中,一个用户可能有 1,000 条评论。我试图将它们限制在前 10 个。我尝试在User
模型中通过
和UserController
via 闭包
这两种方法似乎都只适用于结果的第一条记录。有没有更好的方法来处理这个?
android - Android - SQLite 选择每个不同列值的前 N 次出现
假设我有一个包含三列的 SQL 表“歌曲”:“标题”、“艺术家”和“排名”:
我想做一个 SELECT 查询,该查询将在按排名排序时只返回每个艺术家的前 N 行(例如两行)。我知道在艺术家列上使用 GroupBy 将返回每个艺术家的一行,但是在这种情况下我想要两个像这样:
如果可能的话,我最好想在 android 中使用 queryBuilder 构建它,这与我设法得到的一样接近:
我已经看到了相关的问题,但是我无法找到将其应用于这种情况的方法 - 任何有关如何实现此目的的方向都将不胜感激。
sqlite - 如何从 SQLITE 中选择每个团队的前 N 个获胜者?
我有一个这样的 sqlite3 表:
有很多团队(大约30个团队),每个团队有很多成员(实际记录超过10,000条)。我只想像这样获得每个团队的前 N 个获胜者(为简化起见,在此示例中 N = 3):
他们在同一支球队中的得分排名。
如何使用 sqlite3 查询得到这个结果?任何人都可以提供一些线索?非常感谢。
顺便说一句,“名称”字段不是唯一的,只有(团队,名称)是唯一的,这意味着相同的名称可以出现在不同的团队中。
sql - SQL:每个值的最大出现次数
我有一个非常简单的表 (LOG),其中包含属性 MAC_ADDR、IP_SRC、IP_DST、URL、PROTOCOL。当 PROTOCOL='DNS' 时,我希望包含 IP_SRC、URL、#OfOccurrences 的前n行通过减少表中每个 IP_SRC 的 #OfOccurrences 来排序。
为了更清楚,我希望能够为我的表中的每个 IP_SRC 列出前n 个访问次数最多的页面。
我可以像这样获得每个 IP_SRC 的访问量最大的 URL:
但是,这个解决方案显然没有优化。
这是一个更实用的代码(对于每个 IP_SRC 的访问量最大的 URL):
第二个选项更快!但是,我想要每个 IP_SRC 的n 个访问次数最多的页面,我不知道该怎么做。
谢谢你的帮助。
mysql - 如何限制每个特定结果组的 SQLite 结果?
我在工作中有以下问题。我有一个包含不同列和几 100 000 行的大表。我只会发我感兴趣的。
假设以下数据集
设备 ID、功能 ID、功能状态
我需要选择功能状态 = 1 的行,但每个设备 ID 只选择前 2 行。
查询的结果应该是:
我试过这样的事情:
我在另一个回复中发现了它,但它不太管用。
我知道我需要混合使用 LIMIT 或 COunt(*) 以及一些嵌套选择,但我无法弄清楚。谢谢