Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. SELECT date, inStock, outStock, COUNT(*) impress, SUM(add) adds
  2. FROM
  3. (
  4. SELECT * EXCEPT(temp)
  5. FROM
  6. (
  7. SELECT * EXCEPT(num),
  8. IF(inStock = 0 AND outStock= 0 AND add = 1, 1, 0) temp
  9. FROM
  10. (
  11. SELECT date, clientId, zapchast, inStock, outStock, MAX(add) OVER(partition BY clientId, zapchast, num) add, num
  12. FROM
  13. (
  14. SELECT date, clientId, type, zapchast,
  15. SUM(in_stock) inStock, SUM(out_stock) outStock, add, num
  16. FROM
  17. (
  18. SELECT *,
  19. IF(type="pageview",(DENSE_RANK() OVER(PARTITION BY clientId, zapchast ORDER BY time)),1) num
  20. FROM
  21. (
  22. SELECT
  23. date, time,
  24. clientId, type,
  25. (SELECT value FROM UNNEST(customGroups) WHERE index = 3) AS zapchast,
  26. product.position,
  27. IF(type = "pageview" AND product.productVariant="in_stock",1,0) in_stock,
  28. IF(type = "pageview" AND product.productVariant="out_stock",1,0) out_stock,
  29. IF(eCommerceAction.action_type = "add", 1,0) add
  30. FROM
  31. `dokdbroker.OWOXBI_Streaming.streaming_*`, UNNEST(product) product
  32. WHERE true
  33. AND _TABLE_SUFFIX BETWEEN "20180401" AND "20180431"
  34. AND (SELECT value FROM UNNEST(customGroups) WHERE index = 1) = "inside"
  35. AND (SELECT value FROM UNNEST(customGroups) WHERE index = 2) = "15"
  36. )
  37. WHERE TRUE
  38. AND position <= 12
  39. AND zapchast NOT IN ("20", "501", "521", "398")
  40. AND (type = "pageview" OR (type = "event" AND add = 1))
  41. )
  42. GROUP BY date, clientId, type, zapchast, add, num
  43. )
  44. )
  45. )
  46. WHERE temp = 0
  47. AND (inStock+ outStock) <= 12
  48. )
  49. GROUP BY inStock, outStock, date
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement