相关疑难解决方法(0)

相当于SQL Server TOP

在SQL Server中,TOP可用于返回查询中的前n行.例如,

SELECT TOP 100 * FROM users ORDER BY id
可能用于返回注册网站的前100个人.(这不一定是最好的方式,我只是以它为例).

我的问题是 - 在其他数据库中,TOP等于什么,例如Oracle,MySQL,PostgreSQL等?如果没有等效的关键字,您可以建议使用哪些变通方法来获得相同的结果?

sql database keyword

14
推荐指数
2
解决办法
6875
查看次数

在SQL中计算2,3四分位数平均值

我想在SQL(MySQL)中编写一个存储过程来计算第二和第三四分位数的平均值.

换句话说,我有记录用于测量URL加载所需的时间.记录是(id,url,time),它们是每个URL的许多度量.我要做的是为每个URL删除最低和最高25%(即较低和较高四分位数)并计算剩余25%-75%加载时间的平均值.并将其存储到另一个表中.

我在MS SQL中看到了一些这样的例子,看起来相对简单.但我必须使用MySQL:

  • LIMIT子句不支持百分比(没有类似选择前25%)
  • LIMIT子句不支持其参数为变量(仅限常量)
  • 函数不支持动态SQL(例如PREPARE和EXECUTE)

我到这里得到了:

create procedure G(
  IN val VARCHAR(10)
)
Begin
  select @cnt:=count(*) from test where a=val;
  select  @of:= @cnt /4;
  SELECT @len:= @cnt/2; 
  Prepare stmt from 'select * from test where a="a" LIMIT ?,?';
  execute stmt using @of, @len;
END;
Run Code Online (Sandbox Code Playgroud)

我可以用PHP编写它,但在SQL中考虑它会有更好的整体性能.我非常感谢你的帮助.

mysql sql stored-procedures stored-functions

13
推荐指数
1
解决办法
7433
查看次数

为MySQL中的数值选择TOP X(或bottom)百分比

我想知道是否有任何函数可以在MySQL中用于从包含数值的列中选择TOP X(或底部)百分比.

基本上,我有一个包含价格列表的列,我只想返回价格前十个百分点的那些字段.有什么建议?

mysql sql select

12
推荐指数
3
解决办法
2万
查看次数

MySQL:LIMIT占记录数量的百分比?

假设我有一个值列表,如下所示:

id  value
----------
A   53
B   23
C   12
D   72
E   21
F   16
..
Run Code Online (Sandbox Code Playgroud)

我需要这个列表的前10 % - 我试过:

  SELECT id, value 
    FROM list
ORDER BY value DESC
   LIMIT COUNT(*) / 10
Run Code Online (Sandbox Code Playgroud)

但这不起作用.问题是我在查询之前不知道记录的数量.有任何想法吗?

mysql sql

8
推荐指数
2
解决办法
1万
查看次数