问题标签 [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.
sql - 每组的最小行数
以下是我的查询:
它搜索我朋友的帖子,按他们的评分和日期排序。MAX
此查询中实现的窗口函数让我可以根据表上的字段限制为每个朋友返回的行数Friends
。
但是,我还有一个字段MIN
,用于指定我希望从给定朋友的查询中获得的最小帖子数。这怎么可能?
我还想知道 SQL 是否是这些类型查询的最佳选择?我已经尝试过 Neo4j Graph 数据库,虽然它似乎是一个很好的解决方案,但我宁愿避免使用 2 个单独的数据库。
架构:
假设我们有以下数据:
因此,如果可能的话,我希望看到(post_id, title, rating, date, friend_id)
具有以下条件的组合:
id
来自=2的朋友的 1 到 3 个帖子id
来自=3的朋友的 0 到 5 个帖子id
来自=4的朋友的 2 到 10 个帖子
所以基本上,如果我的朋友friend_id=2
发表了 1 篇或更多篇文章,我至少想要 2 篇。如果他发布的文章超过 3 篇,我希望不超过 3 篇。
mysql - 具有多个 ORDER BY 的 Mysql 分页
我对 mysql 寻呼机有一些问题。
- 计数所有行为 164。
- pro_type - 可以是 3 个不同的整数值;
- pro - 整数值;
- cr_date - 某个日期。
这是我的查询:
- 第二个查询结果与第一个查询结果有重复的行。
- 两个结果都不包含一行或几行。
- 第一个查询 100 和第二个查询的行数是 64,所以结果计数是 ok 的。
- 限制为 200 的查询返回所有有效行(164 行不重复)。
也许有人知道,在这种情况下 ORDER BY & LIMIT OFFSET 有什么问题?
谢谢你。
sql - 您可以在 SQL Express 2008 中使用关键字“LIMIT”检索行吗?
我想这样做,但 SQL Express 2008 不喜欢“限制”部分。
mysql - mysql:订单->限制->总和......可能吗?
我因为以下问题而失去了它:
我有一张桌子,上面有参与者和积分。每个参与者最多可以有 11 个点条目,我只想要前 6 名的总和。
在这个例子中,假设我们想要 3 个中的前 2 个
结果我想要类似的东西
(它应该按结果点排序)
这对mysql有可能吗?在一个查询中?
哦,由此产生的参与者 ID 应该从另一个“参与者”表中解析为真实姓名,其中
但这应该可以在某个时候加入...我知道...
sql - 如果没有匹配,则选择第一条记录
在 PostgreSQL 中,我想根据某些条件选择一行,但如果没有行符合条件,我想返回第一行。该表实际上包含一个序数列,因此任务应该更容易(第一行是序数为 0 的行)。例如:
但是在这种情况下,没有办法保证匹配的记录的顺序,我也没有什么可以排序的。使用单个SELECT
语句执行此操作的方法是什么?
sql - 限制每组从加入开始的行数(不限制为 1 行)
鉴于这些表:
我想列出每家商店雇佣时间最长的 15 名员工(假设 15 名最低employee_id
),或者如果有 15 名员工,则列出商店的所有员工currently_employed='t'
。我想用一个连接子句来做。
我发现很多人只为 1 行执行此操作的示例,通常是最小或最大(单个最长雇员),但我想基本上在连接中结合 anORDER BY
和 a LIMIT
。其中一些示例可以在这里找到:
我还找到了逐个商店进行此操作的不错示例(我没有,我有大约 5000 家商店):
我还看到您可以使用andTOP
代替,但不能用于 PostgreSQL。ORDER BY
LIMIT
我认为两个表之间的连接子句不是唯一(甚至不一定是最好的方法)这样做,如果可以通过store_id
员工表的不同内部工作,所以我愿意接受其他方法。以后可以随时加入。
由于我对 SQL 很陌生,我想要任何可以帮助我理解工作原理的理论背景或其他解释。
php - Laravel 使用跳过和采取限制查询
我正在尝试构建一个使用 skip() 和 take() 函数的查询,由于某种原因它一直offset 0
在末尾添加而不是它应该是LIMIT 0,0
代码:
这是我得到的错误
java - 在Java中使用带有Prepared Statement的LIMIT命令的MySQL语法错误
我正在用 Java 编写代码,我想每次运行这段代码时都从 MySQL 表的下一行获取。我第二次运行这段代码是这样的。
但它向我显示了这个错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ''1','2'' 附近使用正确的语法
mysql - MySQL:限制某些字段
假设我有一个带有这样字段的表:
我想得到一个只有前 3 个不同父 ID 的查询,其 Parent_ID 为 1、3 和 4,如下所示:
我怎样才能使用 MySQL 获得这个。我可以使用 LIMIT 功能吗?谁能帮我?
谢谢。
mysql - 使用 LIMIT 添加 ORDER BY 时,简单的 MySQL 查询被阻塞
我有一张表tb_profilecomments:
4,3 GiB -- 总共 800 万行 -- InnoDB
有3个索引:
我运行的查询很简单:
在不到 1 秒的时间内获得结果(16.000+ 行)。当我现在添加LIMIT 1, 5
到查询中时,我必须等待超过 2 分钟才能得到结果。
不知道 mysql 后台会发生什么,为什么它会严重减慢查询速度。
当我从查询中删除ORDER BY
或删除时LIMIT
,一切都很好。
当按非索引profilecomment_date
列对其进行排序时,它很慢(7 秒),但不像使用索引主键进行排序和限制时那样的 2 分钟profilecomment_id
。
你知道有什么问题吗?可能是损坏的索引?如何发现?怎么修?ANALYZE TABLE 显示消息“ok”。
解释tb_profilecomments :
显示创建表tb_profilecomments:
结果EXPLAIN SELECT * FROM tb_profilecomments WHERE profilecomment_user_id=6430 ORDER BY profilecomment_id DESC LIMIT 1, 5
: