问题标签 [sql-limit]
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.
java - 基于不同主键限制的一对多查询
我有一张这样的桌子:
然后,我有一个标签表,用于显示图像可以具有的标签:
为了得到我想要的结果,我运行这样的查询:
问题是,我想根据唯一image_id
s 的数量进行限制,因为我的输出将如下所示:
请注意我如何将tag_id
s 分组到一个数组中以进行输出,即使 SQL 为每个tag_id
和image_id
组合返回一行。
所以,当我说 时limit 100
,我希望它适用于 100 个独特image_id
的 s。
mysql - MySql 中 INSERT IGNORE.... SELECT.... ORDER BY... LIMIT... 的确切行为是什么?
在 MySql 5.6 中,我有一个类似于以下的查询:
TABLE_1
是一个临时表,用来存储一些元组,然后清空。它没有主键。
由于该进程多次填充表,因此它可能包含通过SELECT
. 考虑到这一点,我考虑增加限制,以便能够插入所有需要的数据。
TABLE_1
这是查询的内容和结果的示例SELECT
。
TABLE_1
:
SELECT
结果(忽略LIMIT
):
因此,考虑到有两个重复的元组,(foo,4)
并且(bar,5)
,我预计要插入 8 个元素......而实际上,我发现查询插入了 10 个元素,忽略了两个重复项。
关键是我在文档中找不到这种行为的原因。我在这里发现只有当我有一个 时才LIMIT
有效。但是我无法找到对这种行为的精确描述,同时具有,和.INSERT...SELECT
ORDER BY
INSERT IGNORE
INSERT...SELECT
ORDER BY
LIMIT
有人可以帮我解释这种意外行为吗?
android - SQLite 是否保证结果的顺序与表匹配?
如果表Scores
如下所示:
以下查询是否总是以 _id 升序返回行?
此外,以下查询是否总是返回 _id 的第一个有序出现(即 5)?
这里的关键是始终。我已经对其进行了测试,它按预期工作,但我想验证这个结果是否得到保证,并且order by
在这些情况下不需要一个子句。
谢谢你们。
c# - 我可以在 sqlite 查询中使用 LIMIT 条件的参数吗
关于我正在为 C# 应用程序处理的 SQLite 查询的快速问题:
我可以使用参数在查询中设置“LIMIT”值吗?例如,我想这样做:
这是一回事吗?或者有没有等价物?如果可以的话,我希望能够以编程方式设置 LIMIT 值。
我试着用谷歌搜索这个问题一段时间,但我没有想出任何东西,所以也许你们都可以帮忙。非常感谢!
mysql - MySQL - 行的底部(X)百分比限制
这是我的表结构:
项目不是唯一的,每个项目可能有 1 到几千行不等,因此我按项目对结果进行分组。我当前的查询如下:
除了这 4 个结果之外,我还想计算值的底部 15% 行的平均价格(price/quantity)
(不是 < 0.15*MAX(price/quantity) 而是 0.15*total,按 (price/quantity) ASC 排序) . 我想到的解决方案涉及使用该项目的计数作为限制器的临时表,但如果可能的话,我非常希望它是单个查询。我确定我在这里需要一个子查询,但我不确定如何获取该特定项目的计数,然后限制该结果的 15%。
使用下面的答案进行更新
使用下面的@GordonLinoff 答案让我基本上一路走来。但是,我确实遇到了两个问题。最大的一个是 @rn 变量没有重置,这导致它保持递增,随后只有第一行项目被包含在内。第二个是在表中出现次数的 15% < 1 的任何项目,返回 NULL。更正是次要的,我在下面包含了我使用的最终查询:
mysql - How to use ORDER BY and LIMIT with UPDATE?
Its straight forward. I have no multiple tables.
How can I get the following SQL to work?
"UPDATE table SET (...) WHERE (...) LIMIT 2 ORDER BY something"
sql - 带有 LIMIT 的 PostgreSQL 窗口函数
下面的查询将结果分组first
到 4 个等间距的日期箱中,并汇总the_value
每个箱中的平均值。
我希望能够只计算the_value
每个箱中最低的 20 的平均值。从 Stackoverflow 上的其他帖子中,我看到这是可能的,而且这也许ORDER BY the_value
是rank()
最好的方法。但我的挣扎是我不确定我当前的查询应该在哪里修改以实现这一点。
任何见解将不胜感激。
Postgres 9.3 版
postgresql - 在 Postgres 中有效地检索所有带分页的行
我的应用程序需要从 Postgres 表中检索所有行,但是,由于未知的约束,我必须限制从一个查询返回的结果的数量,比如limit l
( l=100000
)。
因此,我想到了一个带有偏移和限制的分页作为一个直接的解决方案。但是,Postgres 文档 说:
子句跳过的行
OFFSET
仍然必须在服务器内部计算;因此一个大的OFFSET
可能是低效的。
因此,如果我pages_count * l
通过分页请求行[1, l], [l+1, 2*l], ..., [(pages_count-1)*l+1, pages_count*l]
,实际上将读取(pages_count*l+1)*pages_count*l/2
哪些行。O(sqr(pages_count*l))
或者 Postgres 是否缓存来自最近查询的行,或者什么是检索所有page_count*l
行的有效方法?
mysql - SQL 限制给出了不好的结果
我在使用 SQL LIMIT 语句时遇到问题。我有 21 条记录存储在数据库中,我想分段获取结果。我写了这个查询:
这是我使用此值时得到的行数:
代码用于 php 函数和数据库操作,我使用 PDOStatement 类,但此错误也体现在使用 MySQLi 类中。
有谁知道问题出在哪里?