当前位置: 首页 > 面试题库 >

AWS Athena(Presto)OFFSET支持

水铭晨
2023-03-14
问题内容

我想知道AWS Athena中是否支持OFFSET。对于mysql,以下查询正在运行,但在雅典娜中却给了我错误。任何示例都将有所帮助。

从雇员中选择* empSal> 3000 LIMIT 300 OFFSET 20


问题答案:

雅典娜基本上是由Presto管理的。从Presto311开始,您可以使用OFFSET m LIMIT n语法或等效的ANSI SQL :OFFSET m ROWS FETCH NEXT n ROWS ONLY

您可以在超越极限中阅读更多内容,Presto满足OFFSET和TIES的要求。

对于较旧的版本(在撰写本文时,包括AWS Athena在内)
,您可以使用row_number()窗口函数来实现OFFSET
+ LIMIT。

例如,代替

SELECT * FROM elb_logs
OFFSET 5 LIMIT 5 -- this doesn't work, obviously

您可以执行

SELECT * FROM (
    SELECT row_number() over() AS rn, * FROM elb_logs)
WHERE rn BETWEEN 5 AND 10;

注意:执行引擎仍将需要从基础表中读取offset + limit行,但这仍然比将所有这些行发送回客户端并在其中放置子列表要好得多。

警告:请参阅https://codingdict.com/questions/211823了解为什么在查询中避免OFFSET通常是个好主意。



 类似资料:
  • 我实现了BigQuery插件。BigQuery支持类型,它可以在Presto中表示为类。 在中创建,它具有方法,该方法只要求接受类的实例。 这意味着在我实现Presto的方法时,我必须为具有类型的字段返回。 但是有package private abstract方法,这使我无法实现该类。唯一的子级具有package private constructor,并且没有可以为我构建实例的工厂或构建器。

  • 谁能解释一下我如何用presto编写这个查询?我发现另一篇文章似乎暗示它的工作正确,所以我有点困惑。

  • 描述 (Description) offset( )方法获取第一个匹配元素相对于文档的当前偏移offset( )以像素为单位)。 返回的对象包含两个Float属性,top和left。 浏览器通常将这些值舍入到最接近的整数像素以进行实际定位。 该方法仅适用于可见元素。 语法 (Syntax) 以下是使用此方法的简单语法 - <i>selector</i>.offset( ) 参数 (Paramet

  • Presto是一个由Opera Software开发的浏览器排版引擎(非开源),供Opera 7.0~10.00版使用。 Presto取代了旧版Opera 4至6版本使用的Elektra排版引擎,包括加入动态功能,例如网页或其部分可随着DOM及Script语法的事件而重新排版。 Presto在推出后不断有更新版本推出,使不少错误得以修正,以及阅读Javascript效能得以最佳化。

  • 描述 (Description) marker-offset属性定义marker-offset的最近边界边缘与其关联的主框之间的距离。 不幸的是,IE 6或Netscape 7不支持此属性。 可能的值 (Possible Values) length - 任何长度值。 auto - 默认,让浏览器自动设置它。 适用于 (Applies to) 所有元素都带有标记显示。 DOM语法 (DOM Syn

  • Presto Ethereum Connector Unleash the Power of Presto Interactive SQL Querying on Ethereum Blockchain Introduction Presto is a powerful interactive querying engine that enables running SQL queries on