Analytical SQL - SUM with Partition By

Welcome to the second post on the series Analytical SQL

In the first post we studied Analytical Function without Window Clause. With this post, we will learn Partition By

Analytical functions compute an aggregated value based on a group of rows defined as per Partition By clause, which determines the range of rows used to perform the calculations. 

In last post, we calculated TOTAL SAL in EMP table against each row, using

select d.deptno, d.dname, empno, ename, 
sum(sal) over() total
from emp e, dept d
where e.deptno = d.deptno;

Now, I want to modify TOTAL SAL to DEPARTMENT TOTAL SAL, i.e. calculate total salary of the department against department of each particular row.
SQL> select d.deptno, d.dname, empno, ename, sal,
  2  sum(sal) over(partition by d.dname) total
  3  from emp e, dept d
  4  where e.deptno = d.deptno;

    DEPTNO DNAME               EMPNO ENAME             SAL      TOTAL
---------- -------------- ---------- ---------- ---------- ----------
        10 ACCOUNTING           7839 KING          5000.15     8750.6
        10 ACCOUNTING           7934 MILLER           1300     8750.6
        10 ACCOUNTING           7782 CLARK         2450.45     8750.6
        20 RESEARCH             7566 JONES          2975.5   10877.41
        20 RESEARCH             7788 SCOTT         3000.55   10877.41
        20 RESEARCH             7902 FORD           3000.6   10877.41
        20 RESEARCH             7369 SMITH          800.75   10877.41
        20 RESEARCH             7876 ADAMS         1100.01   10877.41
        30 SALES                7521 WARD             1250    9403.19
        30 SALES                7654 MARTIN        1250.05    9403.19
        30 SALES                7844 TURNER        1500.95    9403.19
        30 SALES                7900 JAMES          950.99    9403.19
        30 SALES                7499 ALLEN          1600.9    9403.19
        30 SALES                7698 BLAKE          2850.3    9403.19
If you want to achieve above output without Analytical Function, you can also try
select d.deptno, d.dname, empno, ename, sal, total
from emp e, dept d,
(select sum(sal) total, deptno from emp group by deptno) t
where d.deptno = e.deptno
and d.deptno = t.deptno
order by 1;
 

10 comments:

  1. This is a great inspiring article. It was very helpful. Thanks for sharing sach a wanderfull post, It was really very helpful information. Connect to get free car removal Brisbane, Cash for cars Brisbane, Cash for car Ipswich

    ReplyDelete
  2. Best oral cleanliness is critical to keep teeth and gums sound. This incorporates propensities, for example, brushing double a day and standard dental check-ups, and many tips. Individuals can forestall these issues with appropriate dental consideration at home and the dental specialist's facility. Here are a portion of the 9 Best Tips For Healthy Teeth to keep teeth and gums solid.
    happy teeth
    tartar breaking off back of teeth

    ReplyDelete
  3. ทดสอบเล่น Pg slot ฝาก 20 รับ 100 ฟรีที่ pg slot สัมผัสประสบการณ์ที่ความเพลิดเพลินแล้วก็ความเพลิดเพลินกันอย่างจุใจไปกับเกมสล็อตกว่า 500+ทำให้เกมสามารถปฏิบัติงานก้าวหน้าผ่านเว็บไซต์

    ReplyDelete
  4. This is the one of the most important information for me. And I am feeling glad reading your article. The article is really excellent ?

    BCom Time Table - B.Com Part 1 2 3 Ka Date Sheet 2022
    B.Com 1st Year Time Table 2022
    B.Com 2nd Year Time Table 2022
    B.Com 3rd Year Time Table 2022

    ReplyDelete
  5. 25% OFF on Oracle Apps R12 Financials Self Paced Course along with 11 Additional Add On Courses (321 Session Videos of 120 Hours Recordings). Our Top Trending Course with 1700 Enrolled Udemy Students

    Please Check https://www.oracleappstechnical.com for details

    ReplyDelete
  6. รองรับทุกการเดิมพัน ไม่ว่าจะผ่านธนาคารPG SLOT หรือวอลเล็ต เล่นได้ผ่านเว็บไซต์ PGSLOTGAMES เดิมพันด้วยเงินเดิมพันเริ่มต้นเพียง 1 บาท อีกทั้งยังสามารถที่จะรับรางวัลแจ็กพ็อตได้ก่อนใคร กับโปรโมชั่นอันมากมาย สะดวกทุกการเดิมพัน เล่นได้ 24 ชั่วโมง

    ReplyDelete
  7. เลือกเล่นได้ดั่งใจ PG SLOT กับเว็บเกมสล็อตที่มีให้เลือกอย่างหลากหลาย ไม่ว่าจะเป็นสล็อตออนไลน์ คาสิโนออนไลน์ อาเขต และยิงปลา ทำกำไรได้อย่างง่ายดาย ตลอด 24 ชั่วโมง ผ่านเว็บไซต์ PGSLOTGAMES เพียงทำการสมัครสมาชิกใหม่ ก็สามารถเล่นได้เลยกว่า 300เกม

    ReplyDelete
  8. PG SLOT online slots game https://pgslot-games.co/ Sign up for a new account, get a 100% bonus, 1st place

    PG SLOT online slots game https://pgslot-games.com/ Sign up for a new account, get a 100% bonus, 1st place

    Mega Game Online Slot Game https://megagame.vegas/ The newest website 2021, the number 1 slot website

    ReplyDelete
  9. Try to play for free without paying PGslot camp. Free trial. There are more than 1000 games to play. You can play at pg slot ทดลองเล่น

    ReplyDelete
  10. Nice Information, your blog is sharing unique information...

    ReplyDelete