8.1.6. LSQL 与传统的SQL写法对比

对比点 传统SQL LSQL
统计计数 SELECT COUNT(*) FROM EXAMPLE_SHU WHERE partition= '2015' ; ① LSQL 层实现 SELECT COUNT(*) FROM EXAMPLE_SHU WHERE partition = '2015';
② SPRAK 层实现 SELECT COUNT(*) FROM (SELECT * FROM EXAMPLE_SHU WHERE partition = '2015')TMP ;
单列GROUP BY SELECT SEX,COUNT(*),COUNT(AMTDOUBLE),S UM(AMTDOUBLE) FROM EXAMPLE_SHU WHERE partition = '3000W' GROUP BY SEX LIMIT 10 ; ① LSQL 层实现SELECT SEX,COUNT(*),COUNT(AMTDOUBLE),SUM(AMTDOUBLE) FROM EXAMPLE_SHU WHERE partition = '3000W' GROUP BY SEX LIMIT 10
② SPRAK 层实现 SELECT SEX,COUNT(*),COUNT(AMTDOUBLE),SUM(AMTDOUBLE) FROM(SELECT SEX, AMTDOUBLE FROM EXAMPLE_SHU WHERE partition = '3000W' ) TMP GROUP BY SEX LIMIT 10
多列GROUP BY SELECT SEX,PROVINCE,COUNT(*) AS CNT,COUNT(AMTDOUBLE),SUM(AMTDOUBLE) FROM EXAMPLE_SHU WHERE partition = '3000W' GROUP BY SEX,PROVINCE ORDER BY CNT DESC LIMIT 10 ; ① LSQL 层实现 SELECT SEX,PROVINCE,COUNT(*) AS CNT,COUNT(AMTDOUBLE),SUM(AMTDOUBLE) FROM EXAMPLE_SHU WHERE partition = '3000W' GROUP BY SEX,PROVINCE ORDER BY CNT DESC LIMIT 10
② SPRAK 层实现 SELECT SEX,PROVINCE,COUNT(*) AS CNT,COUNT(AMTDOUBLE),SUM(AMTDOUBLE) FROM (SELECT SEX,PROVINCE,AMTDOUBLE FROM EXAMPLE_SHU WHERE partition = '3000W' ) TMP GROUP BY SEX,PROVINCE ORDER BY CNT DESC LIMIT 10
LEFT JOIN SELECT K21.VEHICLEPLATE FROM K21 LEFT JOIN K22 ON K21.VEHICLEPLATE=K22.VEHICLEPLATE ORDER BY K21.VEHICLEPLATE ; WITH K23 AS (SELECT VEHICLEPLATE,TOLLCODE FROM K21 WHERE partition = '3000W'), K24 AS ( SELECT VEHICLEPLATE,TOLLCODE FROM K22 WHERE partition = '3000W') SELECT K23.VEHICLEPLATE FROM K23 LEFT JOIN K24 ON K23.VEHICLEPLATE=K24.VEHICLEPLATE ORDER BY K23.VEHICLEPLATE;
UNION ALL SELECT COUNT(*) AS CNT FROM EXAMPLE_SHU WHERE partition = '3000W' UNION ALL SELECT COUNT(*) AS CNT FROM EXAMPLE_SHU WHERE partition = '300WINSERT' ; WITH K23 AS (SELECT COUNT(*) AS CNT FROM K21 WHERE partition = '3000W' ), K24 AS (SELECT COUNT(*) AS CNT FROM K22 WHERE partition = '3000W' ) SELECT * FROM K23 UNION ALL SELECT * FROM K24 ;
DISTINCT SELECT SIZE(COLLECT_SET(SEX)) AS DIST_SEX, SIZE(COLLECT_SET(PROVINCE)) AS DIST_PROVINCE, COUNT(*) AS CNT, COUNT(AMTLONG) AS CNT_LONG, COUNT(DISTINCT AMTLONG) AS DIST_LONG FROM EXAMPLE_SHU WHERE partition = '3000W' AND CONTENT='王老吉' ; SELECT SIZE(COLLECT_SET(TMP.SEX)) AS DIST_SEX, SIZE(COLLECT_SET(TMP.PROVINCE)) AS DIST_PROVINCE, COUNT(*) AS CNT, COUNT(TMP.AMTLONG) AS CNT_LONG, COUNT(DISTINCT TMP.AMTLONG) AS DIST_LONG FROM ( SELECT SEX,PROVINCE,AMTLONG FROM EXAMPLE_SHU WHERE partition = '3000W' AND CONTENT='王老吉' ) TMP LIMIT 10;
GROUP BY +DISTINCT SELECT SEX AS SEX, SIZE(COLLECT_SET(PROVINCE)) AS DIST_PROVINCE, COUNT(*) AS CNT, COUNT(AMTLONG) AS CNT_LONG, COUNT(DISTINCT AMTLONG) AS DIST_LONG FROM EXAMPLE_SHU WHERE partition = '3000W' AND CONTENT=' 王老吉' GROUP BY SEX LIMIT 10; SELECT TMP.SEX AS SEX, SIZE(COLLECT_SET(TMP.PROVINCE)) AS DIST_PROVINCE, COUNT(*) AS CNT, COUNT(TMP.AMTLONG) AS CNT_LONG, COUNT(DISTINCT TMP.AMTLONG) AS DIST_LONG FROM ( SELECT SEX,PROVINCE,AMTLONG FROM EXAMPLE_SHU WHERE partition = '3000W' AND CONTENT='王老吉' ) TMP GROUP BY TMP.SEX LIMIT 10;
结果返回 1. 统计返回为 0 时,显示为 0 2. 查询返回为空时,显示为空 1. 统计返回为 0 时,显示为空 2. 查询返回为空时,显示为空
Copyright © lucene.xin 2020 all right reserved修改时间: 2021-07-02 11:42:23

results matching ""

    No results matching ""