yql-18879.sql 1.2 KB

1234567891011121314151617181920212223242526272829
  1. /* syntax version 1 */
  2. /* postgres can not */
  3. $t1 = AsList(
  4. AsStruct(100 AS itemid, 20 AS duration, 2 AS start_shows, 1 AS day),
  5. AsStruct(1001 AS itemid, 10 AS duration, 2 AS start_shows, 1 AS day),
  6. AsStruct(134 AS itemid, 25 AS duration, 1 AS start_shows, 1 AS day),
  7. AsStruct(123 AS itemid, 24 AS duration, 1 AS start_shows, 1 AS day),
  8. AsStruct(23 AS itemid, 30 AS duration, 1 AS start_shows, 2 AS day),
  9. AsStruct(23 AS itemid, 30 AS duration, 1 AS start_shows, 2 AS day),
  10. AsStruct(1 AS itemid, 45 AS duration, 1 AS start_shows, 2 AS day),
  11. AsStruct(30 AS itemid, 63 AS duration, 1 AS start_shows, 2 AS day),
  12. AsStruct(53 AS itemid, 1000 AS duration, 0 AS start_shows, 2 AS day),
  13. );
  14. SELECT
  15. PERCENT_RANK() OVER (PARTITION BY day ORDER BY start_shows DESC) AS col1,
  16. SUM(start_shows) OVER (PARTITION BY day) AS col2
  17. FROM AS_TABLE($t1);
  18. SELECT
  19. CUME_DIST() OVER (PARTITION BY day ORDER BY start_shows DESC) AS col1,
  20. SUM(start_shows) OVER (PARTITION BY day) AS col2
  21. FROM AS_TABLE($t1);
  22. SELECT
  23. NTILE(2) OVER (PARTITION BY day ORDER BY start_shows DESC) AS col1,
  24. SUM(start_shows) OVER (PARTITION BY day) AS col2
  25. FROM AS_TABLE($t1);