Тёмный
Code-Con
Code-Con
Code-Con
Подписаться
Your one stop solution for your coding problems and building concepts.
ONE SHOT Concept on SQL JOINS
11:46
3 месяца назад
LEETCODE SQL Interview Question | PART 1
4:19
6 месяцев назад
Комментарии
@king-hc6vi
@king-hc6vi 3 дня назад
We can create case statement as well right? If current destination > Prev destination then 1 else 0 .. And then filter the result where we have only 1 Kindly let me know if this works or not.. Many thanks ❤
@Wardaddy3
@Wardaddy3 4 дня назад
Thanks for the video. I used the lag function and used distinct instead of max in the output line. Is it valid? Please check. with cte as ( select p.product_id, p.product_name, s.year, total_sales_revenue, LAG(total_sales_revenue,1) over (partition by p.product_id order by year) as prev_year_revenue from products p join sales s on p.product_id = s.product_id --order by p.product_id, s.year ) select distinct product_id, product_name from cte where product_id not in (select product_id from cte where total_sales_revenue < prev_year_revenue)
@Wardaddy3
@Wardaddy3 4 дня назад
I used self join: select p.name, max(case when pp.gender = 'F' then pp.name end) Mother, max(case when pp.gender = 'M' then pp.name end) Father from people p join relations r on p.id = r.c_id join people pp on pp.id = r.p_id group by p.name Thanks for the video.
@Tech_with_Srini
@Tech_with_Srini 10 дней назад
with cte as ( select empNo,eName,sal,deptno , max(sal) over (partition by deptno) as max_sal , min(sal) over (partition by deptno) as Min_sal from emp2) select c1.empNo,c1.eName,c1.deptno,c2.max_sal,c2.min_sal from cte c1 join cte c2 on c1.empno=c2.empno where c1.sal= c2.max_sal or c1.sal=c2.min_sal order by c1.deptno
@saib7231
@saib7231 13 дней назад
Select taxmonth, sum(cast(clothing as int)+cast(electronics as int)+cast(sports as int)) as total_sales From eshop Group by taxmonth order by total_sales desc limit 1 this als works
@Hope-xb5jv
@Hope-xb5jv 14 дней назад
other method----- select st.student_id ,st.student_name ,s.subject_name ,NULLif(count(e.subject_name),0) as No_of_times_appeared from Students st cross join Subjects s left join Examinations e on e.student_id = st.student_id and e.subject_name = s.subject_name group by st.student_id,st.student_name,s.subject_name order by st.student_id
@vasanthkumar-zw3xf
@vasanthkumar-zw3xf 15 дней назад
select sales_date, sum(case when fruits='apples' then sold_num end) apple_count, sum(case when fruits='oranges' then sold_num end) orange_count, sum(case when fruits='apples' then sold_num end) - sum(case when fruits='oranges' then sold_num end) diff_count from sales group by sales_date
@Tech.S7
@Tech.S7 15 дней назад
Are the two users 1 and 3 who are working in company 1? Does this correct?
@Code-Con
@Code-Con 5 часов назад
yeah
@user-rh8ps7ue1x
@user-rh8ps7ue1x 16 дней назад
Nice explanation,and good question though ✅
@Skd833
@Skd833 18 дней назад
select [dep_id],max([salary]) as higest_salary, min([salary]) as lowest_salary from [Sambit].[dbo].[emp] group by [dep_id]
@Naveen-uz4hw
@Naveen-uz4hw 19 дней назад
select distinct cust_id from (select * ,min(order_date) over(partition by cust_id order by order_date) as min_date ,max(order_date) over(partition by cust_id order by order_date desc) as max_date from transactions)a where (month(max_date)-month(min_date))=1
@rohithr9122
@rohithr9122 25 дней назад
select * from( select sid , case when sname <> tname then 'Mimatched' when tid is null then 'New in sources' end Review from sources as s left join targets t on s.sid = t.tid) t1 where Review is not null union select tid , 'New in targets' from targets where tid not in( select sid from sources) is this correct solution?
@code_with_logic449
@code_with_logic449 25 дней назад
copy past question and solution, why you do like this do some real good question
@nareshgiduthuri7847
@nareshgiduthuri7847 27 дней назад
select txnmonth from eshop where clothing + electronics + sports = ( select max(clothing + electronics + sports) from eshop);
@nareshgiduthuri7847
@nareshgiduthuri7847 28 дней назад
Thanks for your content. Can you please add below in description which would help create table merchant(merchant_id varchar(20) , amount int, payment_mode varchar(20)); insert into merchant values ('m1',200,'cash'),('m2',520,'online'),('m1',700,'online'),('m3',1400,'online'),('m2',50,'cash'),('m1',300,'cash'); select * from merchant;
@maheshnagisetty4485
@maheshnagisetty4485 Месяц назад
select user_id,company_id from ( select count(rn) as cunt,user_id,company_id from ( select company_id,user_id,language,rank() over (partition by company_id order by user_id ) rn from company_users where language in('english','german') ) as a group by user_id,company_id ) as b where cunt >=2
@jayavani2223
@jayavani2223 Месяц назад
SELECT D.dep_Name, MAX (salary) AS highest_salary, MIN(Salary) AS lowest_salary FROM EMployees E LEFT JOIN DEPARTMENTS D ON E.DEP_ID = D.DEPT_ID_DEP GROUP BY D.DEP_NAME Please let me know is it correct or wrong
@gouthamstar6558
@gouthamstar6558 Месяц назад
with cte as (select *, lead(Fruits) over(partition by Sales_date order by sales_date) le_fu111, lead(sold_num) over(partition by Sales_date order by sales_date) le_fu11 from sales) select *, sold_num-le_fu11 from cte where le_fu11 is not null;
@gouthamstar6558
@gouthamstar6558 Месяц назад
emp id, 4,7 are not 3rd highest salary
@gouthamstar6558
@gouthamstar6558 Месяц назад
I got emp id--2, 6,9,10
@gouthamstar6558
@gouthamstar6558 Месяц назад
with cte as ( select *, count(dep_id) over(partition by dep_id ) as dep_count, ROW_NUMBER() over(partition by dep_id order by emp_salary ) as rn from employees ) select * from cte where dep_count >=3 and rn=3 union select * from cte where dep_count <3 and rn=1 order by rn desc
@harshkumargupta1348
@harshkumargupta1348 Месяц назад
Cant we do this Select taxmonth, Max(clothing+electronics+sports) From eshop Group by 1
@saib7231
@saib7231 13 дней назад
no this is syntax wise all instead you can use this Select taxmonth, sum(cast(clothing as int)+cast(electronics as int)+cast(sports as int)) as total_sales From eshop Group by taxmonth order by total_sales desc limit 1
@anime_763
@anime_763 Месяц назад
My solution with cte as ( SELECT * ,LEAD(total_sales1_revenue,1) OVER(PARTITION BY product_id ORDER BY year) Year1 ,LEAD(total_sales1_revenue,2) OVER(PARTITION BY product_id ORDER BY year) year2 ,ROW_NUMBER() OVER (PARTITION BY product_id ORDER BY year) as RW FROM sales1 ) ,cte2 as( SELECT *, CASE WHEN (total_sales1_revenue < Year1 ) AND (Year1 < Year2) THEN 1 ELSE 0 END flag FROM cte WHERE RW = 1 ) SELECT P.* FROM products1 P JOIN cte2 C ON P.product_id=C.product_id WHERE C.flag = 1
@MusicalShorts-hn1px
@MusicalShorts-hn1px Месяц назад
Thanks for posting the problem along with data set
@user-ew2nw1my7r
@user-ew2nw1my7r Месяц назад
Simple Query select Dep_id,avg(salary) as avg_salary,min(salary) as Min_salary, Max(salary) as max_salary from table name group by Dep_id order by dep_id
@king-hc6vi
@king-hc6vi Месяц назад
Can we do partition on Payment mode and seperate the online and cash mode with row number as 1 for cash and row number as 2 for online.... And then case statement in which sum of R1 gives the value and puts 0 for online. Similarly another case statement in which sum of R2 gives the value and puts 0 for cash. Please let me know if this approach is correct or not.
@shryk0s963
@shryk0s963 Месяц назад
with cte as (select *,(lead(total_sales_revenue) over (partition by product_id order by year)-total_sales_revenue)as x from sales) select distinct c.product_id,p.product_name from cte c inner join productss p on c.product_id=p.product_id where c.product_id not in (select product_id from cte where x<0) my solution
@suvadipkundu152
@suvadipkundu152 Месяц назад
can we do it without using a CTE? i suspect we can , though unlikely to be optimal, thoughts??
@Code-Con
@Code-Con Месяц назад
Try it out
@somanathking4694
@somanathking4694 Месяц назад
Bro, Please post the string based scenario questions
@somanathking4694
@somanathking4694 Месяц назад
with cte as (select *,count(team_id) over(partition by team_id) [count] from Employee_Team) select employee_id,count from cte order by employee_id; thanks bro! i have solved it ony own, by seeing your past practice videos. I know i have solved very easy one, but i understand and enjoyed this. it took me 4 attempts to achieve this.
@Code-Con
@Code-Con Месяц назад
Keep it up bro!!
@snehithasingam9918
@snehithasingam9918 Месяц назад
explanation 👌
@tamojeetchatterjee9385
@tamojeetchatterjee9385 Месяц назад
My solution with cte as (select empd_id , swipe_time , flag as f , lag(swipe_time) over(partition by empd_id) as new_time from clocked_hours) select empd_id , extract(hour from sum(swipe_time - new_time)) as clicked_hrs from cte where f = 'O' group by empd_id
@vijaygupta7059
@vijaygupta7059 2 месяца назад
my solution in mssql DB : with child as (select p1.*,r1.p_id from people as p1 inner join relations as r1 on p1.id=r1.c_id union select p1.*,r1.p_id from people as p1 inner join relations as r1 on p1.id=r1.c_id ), main as ( Select child.name as child_name ,people.name as perent_name , people.gender from child inner join people on child.p_id=people.id ) Select child_name ,max(case when gender ='F' then perent_name else null end) as father ,max(case when gender ='M' then perent_name else null end) as mother from main group by child_name
@anirbanbiswas7624
@anirbanbiswas7624 2 месяца назад
with cte as(select *,lag(sold_num) over(partition by sales_date order by sales_date) as no_of_fruits, row_number() over(partition by sales_date order by sales_date desc) as rn from sales), cte2 as (select *,case when rn=2 then abs(sold_num-no_of_fruits) else False end as otpt from cte) select * from cte2 where otpt != 0
@anirbanbiswas7624
@anirbanbiswas7624 2 месяца назад
with cte as (select emp_name,emp_salary,dep_id,count(*) over(partition by dep_id) as cnt, rank() over(partition by dep_id order by emp_salary desc) as rnk from employees), output_case as(select emp_name,emp_salary,dep_id,cnt,rnk, case when cnt=4 then rnk=3 else null end as final, case when cnt=3 then rnk=3 else null end as final2, case when cnt=2 then rnk=2 else null end as final3, case when cnt=1 then rnk=1 else null end as final4 from cte) select emp_name,emp_salary,dep_id from output_case where final=1 or final2=1 or final3=1 or final4=1 I KNOW this code is bit lengthy but still solves the purpose easily
@gouthamstar6558
@gouthamstar6558 Месяц назад
this is a complex method, only works for this particular data, static methods are not good and useful for dynamic data updates
@vijaygupta7059
@vijaygupta7059 2 месяца назад
same solution as you in MSSQL DB Select merchant_id ,sum(case when payment_mode = 'cash' then amount else 0 end ) as Cash ,sum(case when payment_mode = 'online' then amount else 0 end ) as Online from payments group by merchant_id order by sum(case when payment_mode = 'cash' then amount else 0 end) desc
@vijaygupta7059
@vijaygupta7059 2 месяца назад
my solution on MSSQL DB: with cte as ( Select * ,case when total_sales_revenue< lead(total_sales_revenue,1, total_sales_revenue+1)over(partition by product_id order by year) then 1 else null end as new from sales ), sales_cte as( Select * from sales where product_id not in (select product_id from cte where new is null) ) select products.* from sales_cte inner join products on sales_cte.product_id = products.product_id group by products.product_id, products.product_name, products.category
@arupchandra8602
@arupchandra8602 2 месяца назад
with cte as( select candidate_id,datepart(year,vote_date)*100+''+datepart(month,vote_date) as weeks ,count(voter_id) counts from elections group by datepart(year,vote_date)*100+''+datepart(month,vote_date),candidate_id ),cte2 as( select * ,RANK() OVER(PARTITION BY weeks order by counts desc)rn from cte) select * from cte2 where rn=1;
@arupchandra8602
@arupchandra8602 2 месяца назад
select p1.name as name ,max(case when p2.gender='F' then p2.name end) Mother ,max(case when p2.gender='M' then p2.name end) Father from relations r inner join people p1 on p1.id=r.c_id inner join people p2 on p2.id=r.p_id group by p1.name;
@lekshmij317
@lekshmij317 2 месяца назад
Great content 👏 I have approached this in 2 ways, please share your comments 1. Using 2 CTEs, one having Child name, id & gender of child and second CTE is for holding Parent-Child info WITH CHILD AS ( SELECT c_id, p_id, p.name as Child_Name, gender as Child_Gender from people p inner join relations r on id = c_id ), Relation AS ( SELECT Child_Name, MAX(CASE WHEN p.gender = 'F' Then p.name END) Mother, MAX(CASE WHEN p.gender = 'M' Then p.name END) Father FROM people p inner join CHILD c on p.id = c.p_id GROUP BY Child_Name ) select * from Relation; 2. Using 3 CTEs, one additional CTE with both child & parent info WITH CHILD AS ( SELECT c_id, p_id, p.name as Child_Name, gender as Child_Gender from people p inner join relations r on id = c_id), PARENT_CHILD AS ( SELECT C.c_id AS CHILD_ID, Child_Name, id AS PARENT_ID, p.name as Parent_Name, p.gender as Parent_Gender FROM people p inner join CHILD c on p.id = c.p_id), FINAL AS ( SELECT Child_Name, MAX(CASE WHEN Parent_Gender = 'F' Then Parent_Name END) Mother, MAX(CASE WHEN Parent_Gender = 'M' Then Parent_Name END) Father FROM PARENT_CHILD GROUP BY Child_Name) select * from FINAL;
@Code-Con
@Code-Con 2 месяца назад
Great share
@Hkumar_new
@Hkumar_new 2 месяца назад
Hindi bolo sir.. smjh nhi aata
@Code-Con
@Code-Con 2 месяца назад
Ok will record in hindi too
@nidhisingh4973
@nidhisingh4973 2 месяца назад
Thank you. Do you think this will work for not consecutive month order date and different year order date. Suppose cust_id 1 has ordered in Jan, Feb and May. So ideally this id should come for Feb churn analysis but this will not come with this solution approach. Please correct me if I am wrong.
@ajaykrishnanj5633
@ajaykrishnanj5633 2 месяца назад
select * from ( select *,ROW_NUMBER() over(partition by flagtab.concat order by n) as flag from ( select *, case when n>m then CONCAT(n,m) else CONCAT(m,n) end as concat from tb1) as flagtab)as new where new.flag=1
@ardsha
@ardsha 3 месяца назад
we can also achive this by using following : with cte as ( select *, LEAD(total_sales_revenue,1) over (partition by product_id order by year) as nxt_rev, LEAD(total_sales_revenue,2) over (partition by product_id order by year) as nxtnext_rev from sales) select p.product_id,p.product_name,p.category from cte c join products p on c.product_id=p.product_id where nxtnext_rev>nxt_rev and nxt_rev>total_sales_revenue
@raagpathy
@raagpathy 3 месяца назад
Very nice
@chandanpatra1053
@chandanpatra1053 3 месяца назад
bro provide your mail_id in the description so that we can send you the questions to you. create table invoice ( serial_no int, invoice_date date ) insert into invoice values (330115, '2024-03-01') insert into invoice values (330120, '2024-03-01') insert into invoice values (330121, '2024-03-01') insert into invoice values (330122, '2024-03-02') insert into invoice values (330125, '2024-03-02') -- write a sql query to identify the missing serial no.
@Code-Con
@Code-Con 3 месяца назад
I had made a video regarding missing serial numbers, have a watch.
@chandanpatra1053
@chandanpatra1053 3 месяца назад
Hi bro, can you please send me the solution for this question create table brands ( Year int, Brand varchar(20), Amount int ) insert into brands values (2018, 'Apple', 45000); insert into brands values (2019, 'Apple', 35000); insert into brands values (2020, 'Apple', 75000); insert into brands values (2018, 'Samsung', 15000); insert into brands values (2019, 'Samsung', 20000); insert into brands values (2020, 'Samsung', 25000); insert into brands values (2018, 'Nokia', 21000); insert into brands values (2019, 'Nokia', 17000); insert into brands values (2020, 'Nokia', 14000); Write a query to fetch the records of brands whose Revenue is increasing every year? Altough the question you have solved is similar. But differrence is it is a single table and don't have id. I tried to solve the approach you have said. But I can't resolve it. Please make a video or help me in the solution..
@Code-Con
@Code-Con 3 месяца назад
ok will make a video on this soon
@ArabindaMohapatra
@ArabindaMohapatra 3 месяца назад
Awesome Video Keep posting these kind of video
@chandanpatra1053
@chandanpatra1053 3 месяца назад
bro why don't you explain first logic in excel then jump to sql editor to write. can you explain the logic behind total_sales_revenue>nxt>rvn in excel. because there are for product_id 2 every row doesn't satisfy the codition. but how it is working I didn't get it. Please explain in excel first. I have already given feedback related to you previously.
@Code-Con
@Code-Con 3 месяца назад
It should not satisfy the condition, i am selecting those ids that are not satisfying the condition caz total_sales_revenue>nxt_rvn means next year revenue is less which goes against the condition in the question, so we will not consider those ids hence i have used "not in" in where clause. I hope it's clear now. and i will try to first show in excel the move to editor in coming videos.
@saicharan5846
@saicharan5846 3 месяца назад
First view