SQL Assignment – Module 5

 

                                     SQL Assignment – Module 5 SQL Assignment – Module 5


Questions :


1. Display the names of the highest paid programmers for each Language. 

2. Display the details of those who are drawing the same salary. 

3. Who are the programmers who joined on the same day?

 4. Who are the programmers who have the same Prof2? 

5. How many packages were developed by the person who developed the cheapest package, where did he/she study?


Answer :

---ARNAB BOSE---


SELECT * FROM PROGRAMMER

SELECT * FROM SOFTWARE

SELECT * FROM STUDIES


---Q1---


WITH LanguageHighestPaid AS (

    SELECT DISTINCT

        PROF1 AS LANGUAGE,

        FIRST_VALUE(PNAME) OVER(PARTITION BY PROF1 ORDER BY SALARY DESC) AS HIGHEST_PAID_PROGRAMMER

    FROM PROGRAMMER

    UNION

    SELECT DISTINCT

        PROF2 AS LANGUAGE,

        FIRST_VALUE(PNAME) OVER(PARTITION BY PROF2 ORDER BY SALARY DESC) AS HIGHEST_PAID_PROGRAMMER

    FROM PROGRAMMER

)

SELECT * FROM LanguageHighestPaid


---OR---


SELECT 

  lang.prof,

  (

    SELECT TOP 1 pname

    FROM programmer

    WHERE prof1 = lang.prof OR prof2 = lang.prof

    ORDER BY salary DESC

  ) as Name,

  (

    SELECT MAX(Salary)

    FROM programmer

    WHERE prof1 = lang.prof OR prof2 = lang.prof

  ) as MaxSalary

FROM (

  SELECT prof1 as prof FROM programmer 

  UNION

  SELECT prof2 as prof FROM programmer 

) AS lang


---OR---


WITH cte AS (

  SELECT PNAME, SALARY, PROF1 PROF FROM programmer

  UNION 

  SELECT PNAME, SALARY, PROF2      FROM programmer

)

SELECT p1.PNAME, p1.PROF, p1.SALARY

FROM cte p1

LEFT JOIN cte p2

  ON p1.PROF = p2.PROF AND p1.SALARY < p2.SALARY

WHERE p2.PNAME IS NULL


---ARNAB BOSE---



---Q2---


SELECT P1.PNAME  Programmer1,

P1.SALARY  Salary,

P2.PNAME  Programmer2

FROM PROGRAMMER P1

INNER JOIN PROGRAMMER P2 

ON P1.SALARY = P2.SALARY 

AND 

P1.PNAME != P2.PNAME

ORDER BY Salary


---OR---


Select * From PROGRAMMER Where Salary in

(Select Salary From PROGRAMMER Group by Salary Having Count(Salary ) > 1)


---ARNAB BOSE---



---Q3---


SELECT P1.PNAME  Programmer1,

P1.DOJ DOJ,

P2.PNAME  Programmer2

FROM PROGRAMMER P1

INNER JOIN PROGRAMMER P2 

ON P1.DOJ= P2.DOJ

AND 

P1.PNAME != P2.PNAME

ORDER BY P1.DOJ


---OR---


select a.pname,a.doj from programmer a,PROGRAMMER b

where a.doj=b.doj and a.pname <> b.pname


---OR--


SELECT DOJ, STRING_AGG(PNAME, ', ') AS JoinedProgrammers

FROM PROGRAMMER

GROUP BY DOJ

HAVING COUNT(*) > 1


---ARNAB BOSE---



---Q4---


SELECT P1.PNAME AS Programmer1, P2.PNAME AS Programmer2, P1.PROF2 AS CommonProf2

FROM PROGRAMMER P1

JOIN PROGRAMMER P2 ON P1.PROF2 = P2.PROF2 AND P1.PNAME < P2.PNAME



---OR---


SELECT DISTINCT a.pname, a.prof2

FROM PROGRAMMER a, PROGRAMMER b

WHERE a.prof2 = b.prof2 AND a.pname <> b.pname



---Q5---



SELECT

    P.PNAME,

    COUNT(S.PNAME) AS Total_Developed_Packages,

    MIN(S.DCOST) AS Minimum_Cost

FROM

    PROGRAMMER P

LEFT JOIN

    SOFTWARE S ON P.PNAME = S.PNAME

GROUP BY

    P.PNAME


---ARNAB BOSE---


Comments

Popular posts from this blog

SQL Assignment – Module 4

SQL Assignments TABLE

SQL Assignment – Module 1