问题标签 [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.
sqlite - 每组一列中三个最大值的总和
我在 CS 问题网站上遇到了这个问题,但我不知道该怎么做。
我的第一个解决方案在这段代码中陷入了死胡同
但是没有办法限制总和以求最大 3 个值的总和。
另一个想法是创建一个子查询并连接两个表。
像这样
然而,这总结了所有的价值,而不仅仅是前三名。
database - 如何在 SQLite3 的足球数据库中选择每支球队的最后 5 场比赛?
我想从足球数据库中提取一些统计数据。特别是,我想提取每支球队的最后 5 场比赛。SQLite3 可以吗?
我已经能够使用以下查询对所有记录执行此操作(不是太花哨,但它有效!):
SELECT home_stats.team_name,
home_matches,
home_won,
home_drawn,
home_lost,
away_matches,
away_won,
away_drawn,
away_lost
FROM
(SELECT soccer."date" AS "date", home_team AS team_name,
COUNT(*) as home_matches,
COUNT(CASE WHEN(SUBSTR(FTR,0,INSTR(FTR,":")) > SUBSTR(FTR,INSTR(FTR,":") + 1, LENGTH(FTR) - INSTR(FTR, ":") + 1)) THEN 1 ELSE NULL END) AS home_won,
COUNT(CASE WHEN(SUBSTR(FTR,0,INSTR(FTR,":")) = SUBSTR(FTR,INSTR(FTR,":") + 1, LENGTH(FTR) - INSTR(FTR, ":") + 1)) THEN 1 ELSE NULL END) AS home_drawn,
COUNT(CASE WHEN(SUBSTR(FTR,0,INSTR(FTR,":")) < SUBSTR(FTR,INSTR(FTR,":") + 1, LENGTH(FTR) - INSTR(FTR, ":") + 1)) THEN 1 ELSE NULL END) AS home_lost
FROM soccer
WHERE(soccer.FTR NOT NULL)
GROUP BY soccer.home_team) AS home_stats
JOIN
(SELECT soccer."date" AS "date", soccer.away_team AS team_name,
COUNT(*) as away_matches,
COUNT(CASE WHEN(SUBSTR(soccer.FTR,0,INSTR(soccer.FTR,":")) < SUBSTR(soccer.FTR,INSTR(soccer.FTR,":") + 1, LENGTH(soccer.FTR) - INSTR(soccer.FTR,":") + 1)) THEN 1 ELSE NULL END) AS away_won,
COUNT(CASE WHEN(SUBSTR(soccer.FTR,0,INSTR(soccer.FTR,":")) = SUBSTR(soccer.FTR,INSTR(soccer.FTR,":") + 1, LENGTH(soccer.FTR) - INSTR(soccer.FTR,":") + 1)) THEN 1 ELSE NULL END) AS away_drawn,
COUNT(CASE WHEN(SUBSTR(soccer.FTR,0,INSTR(soccer.FTR,":")) > SUBSTR(soccer.FTR,INSTR(soccer.FTR,":") + 1, LENGTH(soccer.FTR) - INSTR(soccer.FTR,":") + 1)) THEN 1 ELSE NULL END) AS away_lost
FROM soccer
WHERE(soccer.FTR NOT NULL)
GROUP BY soccer.away_team) AS away_stats
ON (home_stats.team_name = away_stats.team_name);
sqlite - 如何从 sqlite 数据库中的每个 user_id 中选择最后 5 个结果?
我有一个像这样的“num”表的数据库
我想选择每个 user_id 插入的最后 5 个数字,但我不知道该怎么做。
我试过了:
sqlite - SQL - 选择按多个字段分组的前 n 个,按计数排序
当按多个属性分组时,我试图找到前 n 条记录。我相信它与这个问题有关,但我很难根据我的情况调整所描述的解决方案。
为简化起见,我有一个包含列的表(did 是 device_id 的缩写):
我试图找到每天最多行的前 n 个 device_id。
例如(忽略 id 和 dateTime 的时间部分),
找到前2名将产生...
我目前的幼稚方法只给我所有日期的前 2 名。
我正在使用连接运算符,以便以后可以提取行。
我正在使用 SQLite,但任何一般的 SQL 解释都将不胜感激。
mysql - 每组一行,多列排序
希望每组返回一行,其中一行由多个排序列选择。在每组最大 n的土地上小心行事,以避免重复的问题。
架构:
数据:
当前查询:
注意:排序status=1
有效地将状态列转换为布尔值。之后的决胜局status=1
是id
. 此查询当前首先为每个返回正确的行ip_address
,然后返回一堆我不想要的其他行ip_address
。
当前输出:
想要的输出:
今天我的解决方法是在 PHP 中使用if ($lastIP == $row['ip_address']) continue;
. 但我想将此逻辑移至 MySQL。
sqlite - SQLite 每组取 N 行
我有一个类似于以下的 SQLite 表:
如何检索三个具有5
列中值的B
随机行和三个具有值的随机行7
?我不知道 in 的值B
,也不知道5
ad的值7
。我想要 3 个随机行用于B
. 结果可能不按列B
值分组。它可能是这样的:
sqlite - 获取一定数量的多个值的记录
我有一张这样的桌子:
我想获得一个搜索结果,其中每种类型恰好有 2 行。
更新:
我的结果应该是这样的:(会有更多的类型)
有没有人碰巧对此有解决方案?
sql - SQL Oracle - 每个代理上个月的 50 条记录
我有一个表(processed_amounts),它显示了“金额”、“日期处理”和处理金额的“代理”。我需要一个查询,它将通过指定数量的已处理条目(例如,50 个已处理条目)在指定时间段内(例如上个月)获取多个代理的列表。有没有办法在一个查询中编写所有内容,因为我将每月运行一次?假设我需要一份报告,其中包含 10 个不同代理的 50 个条目,这些条目是在 2018 年 5 月处理的,我可以将其放入一个查询中吗?
因此,例如,表格如下所示;
我的查询需要为 2018 年 5 月的 tbrown 和 asmith 提取 50 个条目。
非常感谢您的帮助
php - MySQL:如何只选择每个不同的 x-column-name 中的三个
我想以一种非常面向未来的方式展示我的博客。所以我需要做一个查询,如果它们被创建,它们将引用新的博客类型。因此,x-column-name。在这种情况下,就是 blogType。此选择查询应包含所有博客类型的博客信息,但为每个博客类型获取 3 个博客。这有点令人困惑,所以这就是我重申的原因!
我已经在谷歌搜索如何限制结果方面做了一些工作。如下图所示:
我将使用数组和 foreach 循环将结果输出到 blog_rss.php。我从这样的函数中获取数组:
这不是太重要,但至少它为您提供了一些背景信息。
因此,我已尽力实施该解决方案,但出现了一些错误。我不确定我是否应该为此开始新帖子,但上面的代码是我使用的,这是我得到的错误: