285 lines
5.1 KiB
SQL
285 lines
5.1 KiB
SQL
SELECT * FROM test;
|
|
SELECT
|
|
*
|
|
FROM test;
|
|
|
|
WITH a AS ((SELECT 1 AS b) UNION ALL (SELECT 2 AS b)) SELECT * FROM a;
|
|
WITH a AS (
|
|
(
|
|
SELECT
|
|
1 AS b
|
|
)
|
|
UNION ALL
|
|
(
|
|
SELECT
|
|
2 AS b
|
|
)
|
|
)
|
|
SELECT
|
|
*
|
|
FROM a;
|
|
|
|
WITH cte1 AS (
|
|
SELECT a, z and e AS b
|
|
FROM cte
|
|
WHERE x IN (1, 2, 3) AND z < -1 OR z > 1 AND w = 'AND'
|
|
), cte2 AS (
|
|
SELECT RANK() OVER (PARTITION BY a, b ORDER BY x DESC) a, b
|
|
FROM cte
|
|
CROSS JOIN (
|
|
SELECT 1
|
|
UNION ALL
|
|
SELECT 2
|
|
UNION ALL
|
|
SELECT CASE x AND 1 + 1 = 2
|
|
WHEN TRUE THEN 1 AND 4 + 3 AND Z
|
|
WHEN x and y THEN 2
|
|
ELSE 3 AND 4 AND g END
|
|
UNION ALL
|
|
SELECT 1
|
|
FROM (SELECT 1) AS x, y, (SELECT 2) z
|
|
UNION ALL
|
|
SELECT MAX(COALESCE(x AND y, a and b and c, d and e)), FOO(CASE WHEN a and b THEN c and d ELSE 3 END)
|
|
GROUP BY x, GROUPING SETS (a, (b, c)) CUBE(y, z)
|
|
) x
|
|
)
|
|
SELECT a, b c FROM (
|
|
SELECT a w, 1 + 1 AS c
|
|
FROM foo
|
|
WHERE w IN (SELECT z FROM q)
|
|
GROUP BY a, b
|
|
) x
|
|
LEFT JOIN (
|
|
SELECT a, b
|
|
FROM (SELECT * FROM bar WHERE (c > 1 AND d > 1) OR e > 1 GROUP BY a HAVING a > 1 LIMIT 10) z
|
|
) y ON x.a = y.b AND x.a > 1 OR (x.c = y.d OR x.c = y.e);
|
|
WITH cte1 AS (
|
|
SELECT
|
|
a,
|
|
z
|
|
AND e AS b
|
|
FROM cte
|
|
WHERE
|
|
x IN (1, 2, 3)
|
|
AND z < -1
|
|
OR z > 1
|
|
AND w = 'AND'
|
|
), cte2 AS (
|
|
SELECT
|
|
RANK() OVER (PARTITION BY a, b ORDER BY x DESC) AS a,
|
|
b
|
|
FROM cte
|
|
CROSS JOIN (
|
|
SELECT
|
|
1
|
|
UNION ALL
|
|
SELECT
|
|
2
|
|
UNION ALL
|
|
SELECT
|
|
CASE x
|
|
AND 1 + 1 = 2
|
|
WHEN TRUE
|
|
THEN 1
|
|
AND 4 + 3
|
|
AND Z
|
|
WHEN x
|
|
AND y
|
|
THEN 2
|
|
ELSE 3
|
|
AND 4
|
|
AND g
|
|
END
|
|
UNION ALL
|
|
SELECT
|
|
1
|
|
FROM (
|
|
SELECT
|
|
1
|
|
) AS x, y, (
|
|
SELECT
|
|
2
|
|
) AS z
|
|
UNION ALL
|
|
SELECT
|
|
MAX(COALESCE(x
|
|
AND y, a
|
|
AND b
|
|
AND c, d
|
|
AND e)),
|
|
FOO(CASE
|
|
WHEN a
|
|
AND b
|
|
THEN c
|
|
AND d
|
|
ELSE 3
|
|
END)
|
|
GROUP BY
|
|
x
|
|
GROUPING SETS (
|
|
a,
|
|
(b, c)
|
|
)
|
|
CUBE (
|
|
y,
|
|
z
|
|
)
|
|
) AS x
|
|
)
|
|
SELECT
|
|
a,
|
|
b AS c
|
|
FROM (
|
|
SELECT
|
|
a AS w,
|
|
1 + 1 AS c
|
|
FROM foo
|
|
WHERE
|
|
w IN (
|
|
SELECT
|
|
z
|
|
FROM q
|
|
)
|
|
GROUP BY
|
|
a,
|
|
b
|
|
) AS x
|
|
LEFT JOIN (
|
|
SELECT
|
|
a,
|
|
b
|
|
FROM (
|
|
SELECT
|
|
*
|
|
FROM bar
|
|
WHERE
|
|
(
|
|
c > 1
|
|
AND d > 1
|
|
)
|
|
OR e > 1
|
|
GROUP BY
|
|
a
|
|
HAVING
|
|
a > 1
|
|
LIMIT 10
|
|
) AS z
|
|
) AS y
|
|
ON x.a = y.b
|
|
AND x.a > 1
|
|
OR (
|
|
x.c = y.d
|
|
OR x.c = y.e
|
|
);
|
|
|
|
SELECT myCol1, myCol2 FROM baseTable LATERAL VIEW OUTER explode(col1) myTable1 AS myCol1 LATERAL VIEW explode(col2) myTable2 AS myCol2
|
|
where a > 1 and b > 2 or c > 3;
|
|
|
|
SELECT
|
|
myCol1,
|
|
myCol2
|
|
FROM baseTable
|
|
LATERAL VIEW OUTER
|
|
EXPLODE(col1) myTable1 AS myCol1
|
|
LATERAL VIEW
|
|
EXPLODE(col2) myTable2 AS myCol2
|
|
WHERE
|
|
a > 1
|
|
AND b > 2
|
|
OR c > 3;
|
|
|
|
SELECT * FROM (WITH y AS ( SELECT 1 AS z) SELECT z from y) x;
|
|
SELECT
|
|
*
|
|
FROM (
|
|
WITH y AS (
|
|
SELECT
|
|
1 AS z
|
|
)
|
|
SELECT
|
|
z
|
|
FROM y
|
|
) AS x;
|
|
|
|
INSERT OVERWRITE TABLE x VALUES (1, 2.0, '3.0'), (4, 5.0, '6.0');
|
|
INSERT OVERWRITE TABLE x VALUES
|
|
(1, 2.0, '3.0'),
|
|
(4, 5.0, '6.0');
|
|
|
|
WITH regional_sales AS (
|
|
SELECT region, SUM(amount) AS total_sales
|
|
FROM orders
|
|
GROUP BY region
|
|
), top_regions AS (
|
|
SELECT region
|
|
FROM regional_sales
|
|
WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales)
|
|
)
|
|
SELECT region,
|
|
product,
|
|
SUM(quantity) AS product_units,
|
|
SUM(amount) AS product_sales
|
|
FROM orders
|
|
WHERE region IN (SELECT region FROM top_regions)
|
|
GROUP BY region, product;
|
|
WITH regional_sales AS (
|
|
SELECT
|
|
region,
|
|
SUM(amount) AS total_sales
|
|
FROM orders
|
|
GROUP BY
|
|
region
|
|
), top_regions AS (
|
|
SELECT
|
|
region
|
|
FROM regional_sales
|
|
WHERE
|
|
total_sales > (
|
|
SELECT
|
|
SUM(total_sales) / 10
|
|
FROM regional_sales
|
|
)
|
|
)
|
|
SELECT
|
|
region,
|
|
product,
|
|
SUM(quantity) AS product_units,
|
|
SUM(amount) AS product_sales
|
|
FROM orders
|
|
WHERE
|
|
region IN (
|
|
SELECT
|
|
region
|
|
FROM top_regions
|
|
)
|
|
GROUP BY
|
|
region,
|
|
product;
|
|
|
|
CREATE TABLE "t_customer_account" ( "id" int, "customer_id" int, "bank" varchar(100), "account_no" varchar(100));
|
|
CREATE TABLE "t_customer_account" (
|
|
"id" INT,
|
|
"customer_id" INT,
|
|
"bank" VARCHAR(100),
|
|
"account_no" VARCHAR(100)
|
|
);
|
|
|
|
CREATE TABLE "t_customer_account" (
|
|
"id" int(11) NOT NULL AUTO_INCREMENT,
|
|
"customer_id" int(11) DEFAULT NULL COMMENT '客户id',
|
|
"bank" varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '行别',
|
|
"account_no" varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '账号',
|
|
PRIMARY KEY ("id")
|
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARACTER SET=utf8 COLLATE=utf8_bin COMMENT='客户账户表';
|
|
CREATE TABLE "t_customer_account" (
|
|
"id" INT(11) NOT NULL AUTO_INCREMENT,
|
|
"customer_id" INT(11) DEFAULT NULL COMMENT '客户id',
|
|
"bank" VARCHAR(100) COLLATE utf8_bin DEFAULT NULL COMMENT '行别',
|
|
"account_no" VARCHAR(100) COLLATE utf8_bin DEFAULT NULL COMMENT '账号',
|
|
PRIMARY KEY("id")
|
|
)
|
|
ENGINE=InnoDB
|
|
AUTO_INCREMENT=1
|
|
DEFAULT CHARACTER SET=utf8
|
|
COLLATE=utf8_bin
|
|
COMMENT='客户账户表';
|