6

宝物データ プレストの SQL クエリに一時的な時間範囲テーブルを使用する必要があります。

CREATE TEMPORARY TABLE fakehours (Hour BIGINT);

INSERT INTO Hour VALUES (0);
INSERT INTO Hour VALUES (1);
INSERT INTO Hour VALUES (2);
INSERT INTO Hour VALUES (3);
INSERT INTO Hour VALUES (4);
INSERT INTO Hour VALUES (5);
INSERT INTO Hour VALUES (6);
INSERT INTO Hour VALUES (7);
INSERT INTO Hour VALUES (8);
INSERT INTO Hour VALUES (9);
INSERT INTO Hour VALUES (10);
INSERT INTO Hour VALUES (11);
INSERT INTO Hour VALUES (12);
INSERT INTO Hour VALUES (13);
INSERT INTO Hour VALUES (14);
INSERT INTO Hour VALUES (15);
INSERT INTO Hour VALUES (16);
INSERT INTO Hour VALUES (17);
INSERT INTO Hour VALUES (18);
INSERT INTO Hour VALUES (19);
INSERT INTO Hour VALUES (20);
INSERT INTO Hour VALUES (21);
INSERT INTO Hour VALUES (22);
INSERT INTO Hour VALUES (23);

このように Presto で何ができますか?

4

3 に答える 3

4

WITHプロのヒント、構文を使用して一時テーブルなしで逃げることさえできるかもしれません. そして、次のSELECTステートメントhoursでは、テーブルであるかのように使用できます。

WITH hours AS (SELECT * FROM UNNEST(ARRAY[0,1, ... 22,23]) AS t (hour))
SELECT 
    * 
FROM 
    hours
;
于 2016-11-18T11:59:54.743 に答える
2

Presto のバージョンに応じて、次を試してください。

SELECT * FROM UNNEST(SEQUENCE(0,23))

また

SELECT * FROM UNNEST(ARRAY[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])

Presto で使用できる一時テーブルを除いて、結合で目的を達成する必要があります。

于 2016-06-22T13:05:21.710 に答える