Very well explained sir.. The way you explain things ans then give the solution actually prepares our way to think logically about the problems Thanks a lot. Please come up with more learnings
My Solution: select case when max(rn) = 1 then null else salary end as SecondHighestSalary from (select salary, rank() over( order by salary desc) as rn from Employe)a where rn = 2
Hello sir, Can you please share tips to solve this problem statement ? There's a grocery store sales transaction table with columns Tnx ID, customer ID, product ID, Date of Tnx, quantity, price. Every sales transaction that happens at the store, gets stored in this table. The store also has a customers table with columns Customer ID, Customer Name, Age, Gender, and Locality. Write an SQL query to find the name and locality of the customer who purchased the highest number of items in the month of Oct’21.
Thanks for your videos.They are quite good. I just feel I the offset solution will not work. As you don't know beforehand the number of distinct values that will return and dependending on that you have to provide the offset count.
In LC Ques no-177 where we've to write solution for Nth highest salary, if we use limit and offset concept then we've to use offset (N-1) but it shows syntax error when we use minus operator. What to do in this case??
Before Return Statement declare and set another variable as N-1 and use that in query. See the below query for reference: CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT BEGIN DECLARE M INT; SET M=N-1; RETURN ( # Write your MySQL query statement below. SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT M, 1 ); END
WITH cte AS ( SELECT salary, DENSE_RANK() OVER (ORDER BY salary DESC) AS rown FROM employee ) SELECT CASE WHEN rown = 2 THEN salary ELSE NULL END AS SecondHighestSalary FROM cte;
The solutions are good sir but if there is a question where we have to find second highest salary from each departments then these solutions would not work I guess.
Checkout the Big Data course details here: trendytech.in/?referrer=youtube_lc2
For a non IT data analyst aspirant like me, this was a wonderful session. Each and every thing explained concept is clear
Very well explained sir..
The way you explain things ans then give the solution actually prepares our way to think logically about the problems
Thanks a lot.
Please come up with more learnings
learnt new concepts : isNull & offset, also how to approach a problem in multiple ways, thank you very much sir :)
Thank you thank you so much, i understand from you rvideo from one go, really amazing sir you are, thanks a lot, and keep moving in this era 😎❤
My Solution:
select case when max(rn) = 1 then null else salary end as SecondHighestSalary
from (select salary, rank() over( order by salary desc) as rn from Employe)a
where rn = 2
Hello sir, Can you please share tips to solve this problem statement ?
There's a grocery store sales transaction table with columns Tnx ID, customer ID, product ID, Date of Tnx, quantity, price. Every sales transaction that happens at the store, gets stored in this table. The store also has a customers table with columns Customer ID, Customer Name, Age, Gender, and Locality.
Write an SQL query to find the name and locality of the customer who purchased the highest number of items in the month of Oct’21.
Make video on
MySQL performance tuning
Thanks for explaining multiple approaches.
it seems IFNULL() not working in oracle
you can use 'NVL' for oracle DB, it works exactly same
Thank you Sir for clearing the concept
Waiting for next Video
Thanks for your videos.They are quite good. I just feel I the offset solution will not work. As you don't know beforehand the number of distinct values that will return and dependending on that you have to provide the offset count.
Instead of limit 1 offset 1, can not we do limit 1,1
I am looking for SQL guidance… Do you have SQL live course ?
Hi, You can checkout my SQL playlist where I cover important topics of SQL.
thanks
Thanks sir.. approaches are really interesting... but i think oracle dont have IFNULL feature .. not sure how to get null with 3rd approach
you can use 'NVL' for oracle
Advance Version - Find n ( eg 10 ) highest salary without order by clause..
In LC Ques no-177 where we've to write solution for Nth highest salary, if we use limit and offset concept then we've to use offset (N-1) but it shows syntax error when we use minus operator. What to do in this case??
Before Return Statement declare and set another variable as N-1 and use that in query. See the below query for reference:
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
DECLARE M INT;
SET M=N-1;
RETURN (
# Write your MySQL query statement below.
SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT M, 1
);
END
Thank you :)
Can you give your solution. ..sql query txt file as well.. Or can post it on your Github and share the link
WITH cte AS (
SELECT
salary,
DENSE_RANK() OVER (ORDER BY salary DESC) AS rown
FROM
employee
)
SELECT
CASE
WHEN rown = 2 THEN salary
ELSE NULL
END AS SecondHighestSalary
FROM
cte;
i think you have missed using DISTINCT function, isn't it? without that...rown=2 wont give exact results. pls correct me if wrong.
The solutions are good sir but if there is a question where we have to find second highest salary from each departments then these solutions would not work I guess.
you can use partition by clause then
sir when next video on sql playlist