Advertisement
yuliia_tech

Oracle 13.04 class 6

Apr 14th, 2023
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --Assignment 1, 2
  2. SELECT P.NAME, COUNT(B.ISBN) COUNT,
  3.     RANK() OVER(ORDER BY COUNT(B.ISBN) DESC) RANK
  4.     DENSE_RANK() OVER (ORDER BY COUNT(B.ISBN) DESC) DENSE_RANK
  5. FROM BOOKS B JOIN PUBLISHER P ON B.PUBID=P.PUBID
  6. GROUP BY P.NAME
  7. ORDER BY 2 DESC;
  8.  
  9. --Assignment 3
  10. SELECT O.SHIPCITY, SUM(OI.QUANTITY) QUANTITY,
  11.        NTILE(4) OVER (ORDER BY SUM(OI.QUANTITY) DESC) NTILE
  12. FROM ORDERS O JOIN ORDERITEMS OI ON O.ORDER#=OI.ORDER#
  13. GROUP BY O.SHIPCITY;
  14.  
  15. --Assignment 4
  16. SELECT P.NAME, TO_CHAR(O.ORDERDATE, 'YYYY-MM') TIME,
  17.        SUM(OI.QUANTITY*(B.RETAIL-B.COST)) PROFIT,
  18.        SUM(SUM(OI.QUANTITY*(B.RETAIL-B.COST)))
  19.        OVER(PARTITION BY P.NAME
  20.             ORDER BY TO_CHAR(O.ORDERDATE, 'YYYY-MM')
  21.             ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) CUM_SUM
  22. FROM ORDERS O JOIN ORDERITEMS OI ON O.ORDER#=OI.ORDER#
  23.         JOIN BOOKS B ON OI.ISBN=B.ISBN JOIN PUBLISHER P
  24.         ON B.PUBID=P.PUBID
  25. GROUP BY P.NAME, TO_CHAR(O.ORDERDATE, 'YYYY-MM')
  26. ORDER BY 1,2;
  27.  
  28. --Assignment 5
  29. SELECT P.NAME, TO_CHAR(O.ORDERDATE, 'YYYY-MM') TIME,
  30.        SUM(OI.QUANTITY*(B.RETAIL-B.COST)) PROFIT,
  31.        ROUND(AVG(SUM(OI.QUANTITY*(B.RETAIL-B.COST)))
  32.        OVER(PARTITION BY P.NAME
  33.             ORDER BY TO_CHAR(O.ORDERDATE, 'YYYY-MM')
  34.             ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),2) MOV_AVG
  35. FROM ORDERS O JOIN ORDERITEMS OI ON O.ORDER#=OI.ORDER#
  36.         JOIN BOOKS B ON OI.ISBN=B.ISBN JOIN PUBLISHER P
  37.         ON B.PUBID=P.PUBID
  38. GROUP BY P.NAME, TO_CHAR(O.ORDERDATE, 'YYYY-MM')
  39. ORDER BY 1,2;
  40.  
  41. --Assignment 6
  42. SELECT P.NAME, TO_CHAR(O.ORDERDATE, 'YYYY-MM') TIME,
  43.        SUM(OI.QUANTITY*(B.RETAIL-B.COST)) PROFIT,
  44.        ROUND(AVG(SUM(OI.QUANTITY*(B.RETAIL-B.COST)))
  45.        OVER(PARTITION BY P.NAME
  46.             ORDER BY TO_CHAR(O.ORDERDATE, 'YYYY-MM')
  47.             ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING),2) CEN_AVG
  48. FROM ORDERS O JOIN ORDERITEMS OI ON O.ORDER#=OI.ORDER#
  49.         JOIN BOOKS B ON OI.ISBN=B.ISBN JOIN PUBLISHER P
  50.         ON B.PUBID=P.PUBID
  51. GROUP BY P.NAME, TO_CHAR(O.ORDERDATE, 'YYYY-MM')
  52. ORDER BY 1,2;
  53.  
  54. --Assignment 7
  55. SELECT B.CATEGORY, EXTRACT(MONTH FROM O.ORDERDATE) MONTH,
  56.        SUM(OI.QUANTITY) QUANTITY,
  57.        ROUND(AVG(SUM(OI.QUANTITY))
  58.        OVER (PARTITION BY EXTRACT(MONTH FROM O.ORDERDATE)),2) AVG
  59. FROM ORDERS O JOIN ORDERITEMS OI ON O.ORDER#=OI.ORDER#
  60.         JOIN BOOKS B ON OI.ISBN=B.ISBN
  61. WHERE EXTRACT(YEAR FROM O.ORDERDATE) = 2005
  62. GROUP BY B.CATEGORY, EXTRACT(MONTH FROM O.ORDERDATE)
  63. ORDER BY 2;
  64.  
  65. --Assignment 8
  66. SELECT P.NAME,
  67.        SUM(OI.QUANTITY*(B.RETAIL-B.COST)) PROFIT,
  68.        SUM(OI.QUANTITY*(B.RETAIL-B.COST)) -
  69.        FIRST_VALUE(SUM(OI.QUANTITY*(B.RETAIL-B.COST))) OVER() FIRST,
  70.        SUM(OI.QUANTITY*(B.RETAIL-B.COST)) -
  71.        LAST_VALUE(SUM(OI.QUANTITY*(B.RETAIL-B.COST))) OVER() LAST
  72. FROM ORDERITEMS OI
  73. JOIN BOOKS B ON OI.ISBN=B.ISBN
  74. JOIN PUBLISHER P ON B.PUBID=P.PUBID
  75. GROUP BY P.NAME
  76. ORDER BY 2 DESC;
  77.  
  78. --Assignment 9
  79. SELECT B.CATEGORY,EXTRACT(MONTH FROM O.ORDERDATE) MONTH,
  80.        SUM(OI.QUANTITY*(B.RETAIL-B.COST)) PROFIT,
  81.        ROUND(RATIO_TO_REPORT(SUM(OI.QUANTITY*(B.RETAIL-B.COST)))
  82.        OVER(PARTITION BY B.CATEGORY),3)*100 PERCENT
  83. FROM ORDERS O JOIN ORDERITEMS OI ON O.ORDER#=OI.ORDER#
  84.         JOIN BOOKS B ON OI.ISBN=B.ISBN
  85. WHERE EXTRACT(YEAR FROM O.ORDERDATE) = 2005
  86. GROUP BY B.CATEGORY, EXTRACT(MONTH FROM O.ORDERDATE);
  87.  
  88. --Assignment 10
  89. SELECT *
  90. FROM (
  91. SELECT B.CATEGORY,
  92.        DECODE(EXTRACT(MONTH FROM O.ORDERDATE), NULL, 'SUMMARY',
  93.        EXTRACT(MONTH FROM O.ORDERDATE)) MONTH,
  94.        SUM(OI.QUANTITY*B.RETAIL) SALE
  95. FROM ORDERS O JOIN ORDERITEMS OI ON O.ORDER#=OI.ORDER#
  96.         JOIN BOOKS B ON OI.ISBN=B.ISBN
  97. WHERE EXTRACT(YEAR FROM O.ORDERDATE) = 2005
  98. GROUP BY CUBE(B.CATEGORY, EXTRACT(MONTH FROM O.ORDERDATE))
  99. ) PIVOT (SUM(SALE) FOR MONTH IN (3,4, 'SUMMARY'));
  100.  
  101.  
  102.  
  103.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement