日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

SELECT

查詢表中的數據。

適用引擎

SELECT語法適用于寬表引擎和時序引擎。

使用限制

Lindorm的SELECT語句僅支持扁平化的查詢,不支持多表連接查詢(JOIN)或集合查詢(UNION、INTERSECT等)。

語法

SELECT [hint_clause] ( select_clause | '*' )
    FROM table_name
    [ WHERE where_clause ]
    [ GROUP BY group_by_clause ]
    [ ORDER BY ordering_clause ]
    [ LIMIT integer [OFFSET integer] ] | [LIMIT integer, integer]
select_clause    ::=  selector [ AS identifier ] ( ',' selector [ AS identifier ] )
selector         ::=  column_name
                      | term
                      | function_name '(' [ selector ( ',' selector )* ] ')'
where_clause     ::=  relation ( AND|OR relation )*
relation         ::=  column_name operator term
                      '(' column_name ( ',' column_name )* ')' operator tuple_literal
operator         ::=  '=' | '<' | '>' | '<=' | '>=' | '!=' | IN | IS NOT? NULL | LIKE
group_by_clause  ::=  column_name ( ',' column_name )*
ordering_clause  ::=  column_name [ ASC | DESC ] ( ',' column_name [ ASC | DESC ] )*

hint_clause::=/*+hint_items*/
hint_items::=hint_item(','hint_item)*
hint_item::=identifier('('hint_option(','hint_option)*')')
hint_option::=expression

使用說明

SELECT子句

SELECT子句指定了查詢輸出的列、常量和函數表達式。AS函數用于定義查詢結果集中列的臨時別名。

WHERE子句

WHERE子句用于指定查詢條件。

寬表WHERE子句的使用有以下注意事項:

  • 建議按下列規則定義查詢條件,避免低效查詢。

    • 僅使用表的第一個主鍵列或索引表的第一個索引列作為查詢條件。

    • 如果查詢條件中包含了非第一個主鍵列(或非第一個索引列),需要定義表的第一個主鍵列(或索引表的第一個索引列)的上下界。

    如查詢條件不符合上述規則,需使用 /*+ _l_allow_filtering_ */強制執行低效查詢,示例請參見強制執行低效查詢。

  • 如果寬表開啟了動態列:

    • 為了確保查詢語句的性能WHERE子句中建議包含主鍵或索引列。

    • WHERE子句中動態列的條件需要為HexString。

    關于動態列的詳情,請參見動態列

GROUP BY子句

寬表引擎與時序引擎均支持GROUP BY子句,用于分組聚合計算。

ORDER BY子句

指定一個列或多個列,對查詢結果集進行排序。

LIMIT子句

LIMIT子句用于分頁查詢。LIMIT后只跟一個數字,表示返回的結果集行數。LIMIT后跟兩個由英文逗號(,)分隔的數字,例如LIMIT n, m,表示跳過n行后,返回m行數據。[ LIMIT integer [OFFSET integer]等同于[LIMIT integer, integer]。

重要
  • LIMIT子句指定OFFSET后,分頁查詢仍然會檢索OFFSET跳過的數據。為避免查詢負載過大,建議您將OFFSET的值設置在5000以內。

  • 如果寬表開啟了動態列,請注意以下事項:

    • 使用SELECT *查詢動態列表時,Lindorm SQL為了保證結果集元數據的正確性,需要在查詢語句后加LIMIT。

    • 對于動態列表的SELECT *查詢操作,LIMIT的默認最大值為5000,超過最大值會報錯。

HINT

寬表引擎和時序引擎支持通過Hint優化查詢計劃或實現特定的查詢功能。詳情請參見HINT簡介。

示例

本文提供的示例基于CREATE TABLE文檔和UPSERT文檔的示例語句。

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time BIGINT NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
);

簡單查詢

SELECT * FROM sensor; --選擇全部列
SELECT device_id,region,humidity FROM senor;  --選擇部分列
SELECT * FROM sensor WHERE device_id = 'F07A1260' LIMIT 20 OFFSET 5; --等價于LIMIT 5,20
SELECT count(*) AS countRow FROM sensor; --定義別名

聚合查詢

  • 統計設備IDF07A1260某一時刻上報的所有數據條數。

SELECT count(*) FROM sensor WHERE device_id = 'F07A1260' AND time = '2021-04-22 15:33:00';
  • 查詢設備IDF07A1260在一段時間內的最大溫度。

SELECT max(temperature) AS max_temp FROM sensor WHERE device_id = 'F07A1260' AND time >= '2021-04-22 15:33:00' AND time < '2021-04-22 15:33:20';

條件查詢

  • 查詢region為'north-cn'且溫度高于15度或region為'south-cn'且溫度高于10度,濕度不為空的設備IDF07A1260的濕度。

SELECT device_id, humidity FROM sensor WHERE ((region='north-cn' AND temperature >15) OR (region='south-cn' AND temperature >10)) 
AND device_id = 'F07A1260' AND humidity is not null;
  • 查詢設備ID為F07A1260F07A1261的數據。

SELECT * FROM sensor WHERE device_id IN ('F07A1260', 'F07A1261');

強制執行低效查詢

SELECT /*+ _l_allow_filtering_ */ * FROM sensor WHERE humidity=20;