REAL SQL Interview PROBLEM by Capgemini | Solving SQL Queries

Поделиться
HTML-код
  • Опубликовано: 22 ноя 2024

Комментарии •

  • @GamerShaggy
    @GamerShaggy 6 месяцев назад +73

    create table lifts
    (
    id int
    , capacity_kg int
    );
    insert into lifts values (1, 300);
    insert into lifts values (2, 350);
    create table lift_passengers
    (
    passenger_name varchar(50)
    , weight_kg int
    , lift_id int
    );
    insert into lift_passengers values ('Rahul', 85, 1);
    insert into lift_passengers values ('Adarsh', 73, 1);
    insert into lift_passengers values ('Riti', 95, 1);
    insert into lift_passengers values ('Dheeraj', 80, 1);
    insert into lift_passengers values ('Vimal', 83, 2);
    insert into lift_passengers values ('Neha', 77, 2);
    insert into lift_passengers values ('Priti', 73, 2);
    insert into lift_passengers values ('Himanshi', 85, 2);

    • @bankimdas9517
      @bankimdas9517 6 месяцев назад +6

      Thanks for providing script. This will definitely help most of us

    • @devendrabarasker4987
      @devendrabarasker4987 6 месяцев назад +1

      thank you for script

    • @2424rara
      @2424rara 6 месяцев назад +1

      Thoughtful and much needed

    • @pragatiaggarwal8103
      @pragatiaggarwal8103 5 месяцев назад +1

      Thank you so much :)

    • @riasingh11
      @riasingh11 4 месяца назад +1

      You're an angel

  • @adilsheikh9916
    @adilsheikh9916 3 месяца назад +6

    A great question & a great explained answer.
    But I find it funny that this was asked in Capgemini, either interviewee claimed to be very good in SQL or interviewer was frustrated from his/her job in Capgemini.

  • @Nizam_3210
    @Nizam_3210 6 месяцев назад +1

    Thanks Toufik,
    However You considered only one combination but There could be multiple combination from lift 1 of those having sum of weight

    • @FaisalAli-ps7th
      @FaisalAli-ps7th 6 месяцев назад +1

      +1
      A solution with output as you mentioned would go better with the requirement of the question.

  • @avijayreddy3401
    @avijayreddy3401 5 месяцев назад

    Thanks for the Beautiful SQL question. Here is my Solution to the Problem.
    WITH CTE as (
    select p.*,l.*,SUM(weight_kg) OVER (Partition By id ORDER BY weight_kg) as Cumulative_Sum from lift_passengers p
    LEFT JOIN lift l
    ON p.lift_id = l.id)
    SELECT string_agg(passenger_name,',') as Passenger_Name from (
    SELECT *,CASE WHEN Cumulative_Sum

  • @apppu1k221
    @apppu1k221 4 месяца назад +3

    for mysql -
    with cte as (
    select * ,
    SUM(weight_kg) OVER (partition by lift_id order by weight_kg) as running_weight
    from lift_passengers lp JOIN
    lifts ON lift_id = id)
    select lift_id,
    group_concat(passenger_name) as passengers from cte
    where running_weight

  • @rohithb65
    @rohithb65 6 месяцев назад +1

    with cte as
    (select * ,
    sum(weight_kg) over(partition by lift_id order by weight_kg) runing
    from lift_passengers)
    select c.lift_id,group_concat(c.passenger_name) as passenger
    from cte as c
    join lifts as l
    on c.lift_id = l.id and l.capacity_kg >= c.runing
    group by c.lift_id

  • @psatpsat-q5v
    @psatpsat-q5v 20 дней назад

    My Solution in MSSQL:
    with cte as(
    Select *,
    sum(weight_kg) over (partition by lp.lift_id order by weight_kg) as wt_sum
    from lift_passengers lp
    inner join lifts l on lp.lift_id=l.id)
    select string_agg(passenger_name,','),lift_id
    from cte
    where wt_sum

  • @oluseyeoyeyemisunday4890
    @oluseyeoyeyemisunday4890 6 месяцев назад +3

    drop table if exists lift;
    create table lift(
    id int,
    capacity_kg int
    );
    drop table if exists lift_passengers;
    create table lift_passengers(
    passenger_name varchar(50),
    weight_kg int,
    lift_id int
    );
    insert into lift values (1,300);
    insert into lift values (2,350);
    insert into lift_passengers values ('Rahul',85,1);
    insert into lift_passengers values ('Adarsh',73,1);
    insert into lift_passengers values ('Riti',95,1);
    insert into lift_passengers values ('Dheeraj',80,1);
    insert into lift_passengers values ('Vimal',83,2);
    insert into lift_passengers values ('Neha',77,2);
    insert into lift_passengers values ('Priti',73,2);
    insert into lift_passengers values ('Himanshi',85,2);
    select * from lift;
    select * from lift_passengers;

  • @sonalirajput417
    @sonalirajput417 6 месяцев назад +84

    I am an Odin student. No placement support nothing. It's been 3 months since I completed the course. Not a single vacancy I got in placement assistance. Anyway you are the best teacher after completing the course still clearing doubts from your videos.

    • @Sami34152
      @Sami34152 6 месяцев назад +12

      This is called real facts 😂😂😂

    • @grvdjkg
      @grvdjkg 6 месяцев назад +9

      people from iit, even after completing full time course are not getting placed. Doing these online course will not help. There was a time in the past when these quick certifications would work, but right now its not possible

    • @Dark_Divine-s6o
      @Dark_Divine-s6o 6 месяцев назад +3

      Which Batch DS3A😄

    • @agarwalaarzoo3738
      @agarwalaarzoo3738 6 месяцев назад +1

      What they r telling regarding job assistance?

    • @snakesa1
      @snakesa1 5 месяцев назад

      Hi can we connect? I'm also from odinschool

  • @anchal7876
    @anchal7876 6 месяцев назад

    with cte as
    (select lift_id,passenger_name,weight_kg,sum(weight_kg) over(partition by lift_id order by weight_kg) as cc, capacity_kg from lift_passengers
    join lifts on lift_passengers.lift_id=lifts.id
    ),
    cte2 as(select *,case when cc>capacity_kg then 'n'
    else 'y'
    end as 'ff'
    from cte
    )
    select lift_id,string_agg(passenger_name,', ') as passengers from cte2 where ff'n' group by lift_id

  • @RashmiBiradar-vr2cs
    @RashmiBiradar-vr2cs 6 месяцев назад

    Below method is using CTE and this works in Oracle SQL:
    with new_table as (select lp.*,
    sum(weight_kg) over (partition by lift_id order by weight_kg asc) as sum_weight
    from lift_passengers lp)
    select l.id, LISTAGG(nt.PASSENGERS_NAME, ',')
    from lift l
    inner join new_table nt on nt.sum_weight < l.CAPACITY_KG and nt.lift_id =l.id
    group by l.id

  • @anduamlaktadesse9284
    @anduamlaktadesse9284 5 месяцев назад

    My solution using SQL Server:
    with main as (
    select lp.lift_id,
    l.capacity_kg,
    lp.passenger_name,
    weight_kg,
    sum(weight_kg) over(partition by lp.lift_id order by weight_kg
    range between unbounded preceding and current row ) as Total_Kg
    from lifts l inner join lift_passengers lp on l.id=lp.lift_id
    ),
    Overlift_Capacity_check as
    (
    select * , case when Total_Kg < capacity_kg then 1 else 0 end as Overlift_Flag
    from main)
    select lift_id,STRING_AGG(passenger_name,',') as passengers
    from Overlift_Capacity_check
    where Overlift_Flag 0
    group by lift_id;

  • @chethan4160
    @chethan4160 3 месяца назад

    with paa as(
    select *, sum(weight_kg) over(partition by id order by id, weight_kg) runing_total from lift_passengers
    join lift on id=lift_id ),
    stg AS(select * from PAA where capacity_kg>=runing_total)
    select LIFT_ID, STRING_AGG(passenger_name, ',') from stg
    GROUP BY LIFT_ID

  • @Muchatla_rani3040
    @Muchatla_rani3040 6 месяцев назад +8

    Hi Thoufiq , I have been following your channel from past 1.5years it was helped me lot for sql and absolutely you are doing a great job .we all knew how much effort you are putting to create this series for sql and please try to create the same series for python also.Thank you so much for your hardwork☺️.

    • @techTFQ
      @techTFQ  6 месяцев назад +3

      Thanks Anusha .. appreciate your kind words.. I’ll think about your suggestions 👍

  • @Damon-007
    @Damon-007 6 месяцев назад +2

    Ms sql:
    with cte as(
    select p.* ,l.weight, case when sum(weight_kg) over(partition by p.lift_id order by weight_kg) < l.weight then 1 else 0 end flag
    from passengers p
    inner join
    lift l
    on l.lift_id=p.lift_id)
    select lift_id, string_agg(passengername , ',') name
    from cte
    where flag=1
    group by lift_id
    order by lift_id;

  • @LomeshSoni-h2i
    @LomeshSoni-h2i 6 месяцев назад

    with cte as (select *,
    sum(weight_kg) over (partition by lift_id order by weight_kg) as sum_weights
    from lift_passengers)
    ,cte2 as (
    select c.passenger_name, l.id,
    case when c.sum_weights - l.capacity_kg

  • @Khader_views
    @Khader_views 5 месяцев назад

    Thoufiq you are the real mentor good teacher waiting for more videos and live advance SQL classes.😊

  • @bodybuildingmotivation5438
    @bodybuildingmotivation5438 6 месяцев назад

    with cte as (
    select *,sum(weight_kg) over (partition by lift_id order by weight_kg) chk from lift_passengers a left join lifts b on a.lift_id=b.id)
    select id,STRING_AGG(passenger_name,',') as Outputs from cte where chk

  • @swethathiruppathy9973
    @swethathiruppathy9973 5 месяцев назад +1

    Hi Sir,
    Thank you for your videos
    hereby sharing my solution
    with cte as (
    select *,sum(weight_kg) over(partition by lift_id order by weight_kg) as running_weight from lift_passengers P
    join lifts L
    on p.lift_id =l.id
    )
    select lift_id
    ,STRING_AGG(Passenger_name,',') as list_passenger
    from cte
    where running_weight

  • @gowri-uk1wd
    @gowri-uk1wd 6 месяцев назад

    with cte as
    (select *, sum(weight) over(partition by liftid order by weight) as r
    from lift_pas)
    select cte.liftid, string_agg(cte.name,',') as pas from cte join lift l on cte.liftid = l.id
    and cte.r

  • @tahakhalid324
    @tahakhalid324 3 месяца назад

    Hi Toufeeq, Here is my Solution : with weights_per_lift as (
    SELECT
    LP.Passenger_name,
    LP.Weight_kg,
    LP.Lift_id,
    L.CAPACITY_KG
    from
    LIFT_PASSENGERS LP
    join
    LIFT L
    on L.id=LP.LIFT_ID
    ) , max_person_per_lift_capacity as (
    SELECT
    passenger_name,
    weight_kg,
    lift_id,
    sum(weight_kg)over(partition by lift_id order by weight_kg) as weights,
    capacity_kg
    from weights_per_lift
    )
    SELECT
    lift_id,
    GROUP_concat(passenger_name separator ',') as Passengers
    from
    max_person_per_lift_capacity
    where
    capacity_kg >= weights
    GROUP
    by lift_id

  • @ArghyadeepPal92
    @ArghyadeepPal92 6 месяцев назад

    My solution :-
    1)On ms sql server
    with t1 as
    (select li.id, sum(weight_kg)over(partition by lift_id order by weight_kg) as cum_sum,passenger_name,li.capacity_kg from lift_passengers as lp
    join lifts as li on lp.lift_id=li.id)
    select id, STRING_AGG(passenger_name,',') as passengers
    from t1 where cum_sum

  • @bankimdas9517
    @bankimdas9517 6 месяцев назад +3

    Welcome back sir

    • @techTFQ
      @techTFQ  6 месяцев назад

      Thank you :)

  • @Satish_____Sharma
    @Satish_____Sharma 6 месяцев назад

    Here is mysolution using MYSQL
    with cte as (select lp.passenger_name,lp.lift_id,sum(lp.weight_kg) over (partition by lp.lift_id order by lp.weight_kg) as wt,l.capacity_kg
    from lift_passengers lp
    left join lifts l on lp.lift_id=l.id)
    select lift_id,group_concat(passenger_name) as passenger_name from cte where wt

  • @anudipray4492
    @anudipray4492 Месяц назад

    Please upload the Create and insert script, so that lot of time will be saved during practice.

  • @AmanRaj-p8w
    @AmanRaj-p8w 6 месяцев назад

    MySql Solution: with cte as (
    select passenger_name, weight_kg, lift_id, capacity_kg, sum(weight_kg) over (partition by lift_id rows between unbounded preceding and current row) as cum_sum
    from lift_passengers as lp
    inner join lifts as l on l.id = lp.lift_id
    )
    ,cte2 as (
    select * from cte
    where cum_sum < capacity_kg )
    select lift_id, group_concat(passenger_name) as passengers from cte2
    group by lift_id

  • @shubhampalde8030
    @shubhampalde8030 6 месяцев назад +1

    Glad to see you back again sir 😌

  • @shubhamgupta2246
    @shubhamgupta2246 6 месяцев назад

    for MySql
    with cte as
    (select * ,
    sum(weight_kg) over(partition by id order by id,weight_kg) as cummulative_sum,
    case when capacity_kg>= sum(weight_kg) over(partition by id order by id,weight_kg)
    then 1
    else 0
    end as flag
    from lifts
    join lift_passengers
    on id=lift_id
    order by id,weight_kg)
    SELECT lift_id, GROUP_CONCAT(passenger_name ORDER BY passenger_name SEPARATOR ', ') AS passenger
    from cte
    where flag=1
    group by lift_id;

  • @gideon6319
    @gideon6319 6 месяцев назад +2

    Welcome back Touafiq

    • @techTFQ
      @techTFQ  6 месяцев назад

      Thank you :)

  • @aspa18
    @aspa18 6 месяцев назад

    Could you please do a video where you explain the select statement or maybe the aggregates with group by and having ? Thank you for your work 🙏🏼

  • @narendrashekhavat
    @narendrashekhavat 5 месяцев назад

    I am bit late to post answer but enjoy your problems.
    i didn't still watch full but here it is my answer:
    with cte_1 as (
    Select * from (
    Select Name,ID,capacity,total, flag_sum,case when flag_sum>capacity then 'N' else 'Y' end as flag from(
    Select Name,ID,capacity,total,sum(total) over (partition by id,capacity order by total) as flag_sum from (
    Select Name,ID,capacity,weight as total from Lift_passenger join lift
    on lift_id=id ) A)B)C where Flag'N')
    --Select ID,Name from cte_1;
    Select distinct A.ID,STUFF((Select distinct ', '+B.Name from CTE_1 B where A.id=B.id
    for XML path (''),TYPE
    ).value('.', 'NVARCHAR(MAX)'),1,2,'') Passenger from CTE_1 A
    Happy Learning☺

  • @m.s.k5300
    @m.s.k5300 6 месяцев назад +2

    Capegemini interview very simple I have attended three times cleared three times as well

    • @srivishwa9189
      @srivishwa9189 6 месяцев назад

      For which role?

    • @sueyourself5413
      @sueyourself5413 6 месяцев назад

      Ouais, on te croit pas gros, sa sent la merde.

    • @AK47-666
      @AK47-666 2 месяца назад

      Feku chand

  • @akhilsingh5251
    @akhilsingh5251 6 месяцев назад

    with cte1 as (
    select *, sum(weight_kg) over(partition by lift_id order by weight_kg) as running_sum
    from lift_passengers lp
    inner join lift l on lp.lift_id = l.id),
    cte2 as (select *, case when capacity_kg>= running_sum then 1 else 0 end as runn_sum
    from cte1)
    select id , STRING_AGG(passenger_name, ',') as total_pass
    from cte2
    group by id

  • @emmanueltondikatti8754
    @emmanueltondikatti8754 5 месяцев назад

    Well explained! Intuitive and to the point

  • @malcorub
    @malcorub 6 месяцев назад

    For my fellow Americans Lift = Elevator. 😀
    Welcome back Thoufiq!!!

  • @anuraghaldar128
    @anuraghaldar128 3 месяца назад +1

    RITI as a girl is offended to be 95 KG 😂 , just kidding
    well explained sir , want more problems like this

  • @GurleenKaur-eg7bh
    @GurleenKaur-eg7bh 6 месяцев назад +2

    Explanation is awesome 💯

  • @makarsh29
    @makarsh29 2 месяца назад +1

    good question

  • @ishashaw2561
    @ishashaw2561 4 месяца назад

    My Solution:
    with cte as (select l.PASSENGER_NAME, l.WEIGHT_KG, sum(WEIGHT_KG)
    over(partition by l.lift_id ORDER BY l.PASSENGER_NAME rows between unbounded preceding and current row)
    as cur_wt_on_lift, l2.id, l2.CAPACITY_KG
    from lift_passengers l join lifts l2 on l.LIFT_ID = l2.id),
    cte2 as(select id, PASSENGER_NAME from cte where CAPACITY_KG >= CUR_WT_ON_LIFT)
    select id, listagg(PASSENGER_NAME, ',') as PASSENGER_NAME from cte2 group by id

  • @Kirankumar-ml1ro
    @Kirankumar-ml1ro 6 месяцев назад +4

    with cte as (
    select lp.passenger_name,
    lp.weight_kg,
    sum(weight_kg) over (partition by lift_id order by weight_kg) as cumu_sum,l.capacity_kg,lp.lift_id
    from lift_passengers lp
    join lifts l on l.id=lp.lift_id
    )
    select lift_id,string_agg(passenger_name,' , ')
    from cte
    where cumu_sum

  • @gouthamstar6558
    @gouthamstar6558 6 месяцев назад

    with cte as (
    select l.*,lp.*, sum(lp.WeightKG) over(partition by l.id order by l.id,lp.WeightKG) as w from LiftPassengers lp
    left join Lift l
    on lp.LiftID =l.ID
    )
    select ID, STRING_AGG(PassengerName, ' , ') as passengers from cte
    where w< CapacityKG
    group by id

  • @adarshnb618
    @adarshnb618 3 месяца назад

    Excellent explanation

  • @oluseyeoyeyemisunday4890
    @oluseyeoyeyemisunday4890 6 месяцев назад +1

    I miss your videos. Thank you for this one.

  • @shivaprasad-kn3kw
    @shivaprasad-kn3kw 6 месяцев назад

    here is my solution
    with CTE as (
    select name, weight , liftid, capacity from lift_passengers a join lifts b on a.liftid = b.id)
    ,CTE2 as (
    select name, weight, liftid, capacity, sum(weight) over(partition by liftid order by weight) cumm_weight from CTE)
    select liftid, string_agg(name, ',') as passengers from CTE2 where cumm_weight

  • @shabbiransari7584
    @shabbiransari7584 5 месяцев назад +2

    Why do not you teach PL\SQL?

  • @debpatro
    @debpatro 5 месяцев назад +2

    How to retrieve all sets of lift passengers combinations for two sets of given lifts weight?
    It's an extension to the question??

    • @Squeed79
      @Squeed79 2 месяца назад

      yes, the original question is somewhat stupid.

  • @jayakrishnachanumuru
    @jayakrishnachanumuru 3 месяца назад

    Thank you sir

  • @TonnyPodiyan
    @TonnyPodiyan 3 месяца назад

    with primary_table as
    (Select lp.*,capacity_kg from lift_passengers lp
    left join lifts l
    on lp.lift_id=l.id),
    cum_weight_table as
    (Select passenger_name,
    lift_id,
    capacity_kg,
    sum(weight_kg) over (PARTITION by lift_id order by weight_kg asc
    rows between unbounded preceding and current row) as cum_weight
    from primary_table),
    flag_table as
    (Select *,
    case when cum_weight

  • @shekhark1139
    @shekhark1139 6 месяцев назад

    Thanks ! You are back with new challenge , Thank you for the video, everytime I learn something new or different aporoach solving queries, thank you very much.

  • @kummithavenkatareddy2302
    @kummithavenkatareddy2302 3 месяца назад

    what about Lift_ID -- ( 80+85+95 < 300 ). this is also a combination, right? why can't we have this combination.

  • @1112electronics
    @1112electronics 5 месяцев назад

    Thanks for the great video 🎉

  • @ujwalkumar4750
    @ujwalkumar4750 6 месяцев назад

    I would suggest you layoff is going in IT so wait atleast 3 month wherever you r

  • @Mathematica1729
    @Mathematica1729 6 месяцев назад

    Soln in MYSQL:-
    SELECT LIFT_ID , group_concat(PASSENGER_NAME SEPARATOR ' , ') AS PASSENGERS
    FROM
    (SELECT *,
    SUM(WEIGHT_KG) OVER (partition by LIFT_ID order by WEIGHT_KG ) as r_sum
    FROM lift_passengers p
    JOIN lift l on
    p.LIFT_ID = l.id)h
    where r_sum < capacity
    GROUP BY LIFT_ID;

  • @43_jaymohitepatil47
    @43_jaymohitepatil47 5 месяцев назад

    can we solve this problem without using window function

  • @Madhuripalug
    @Madhuripalug 5 месяцев назад

    Hi can you explain about the cursor

  • @gawlianilnrayan
    @gawlianilnrayan 6 месяцев назад +1

    just for info.... ORDER BY can't use in CTE statement... correct me if i am wrong

    • @malcorub
      @malcorub 6 месяцев назад

      Within Post Gre SQL yes, but not SQL Server.
      But your also ordering it within the SUM(weight_kg) window function so you should be good either way.

  • @shresthaupadhyay5739
    @shresthaupadhyay5739 4 месяца назад

    this question is there in the Ankit bansal's 100 sql question course

  • @chinmayjoshi5770
    @chinmayjoshi5770 3 месяца назад

    For what designation and experience level was this for?

  • @rajeevyadav1637
    @rajeevyadav1637 6 месяцев назад

    Let's begin

  • @dhrupadsaha4171
    @dhrupadsaha4171 5 месяцев назад +3

    justice for Riti 😢

  • @jagadeeswarareddy_sathi
    @jagadeeswarareddy_sathi 6 месяцев назад

    Thanks for the video ❤

  • @DiwakarLearn
    @DiwakarLearn 5 месяцев назад

    Is this String_agg function will work on all the environments

  • @viveks288
    @viveks288 6 месяцев назад +1

    Hi sir , instead of using string_agg shall we use listag is that possible

  • @bienfaitnkurunziza6941
    @bienfaitnkurunziza6941 5 месяцев назад

    Thank you bro👌

  • @shahistashaikh8468
    @shahistashaikh8468 Месяц назад

    i wanted to ask one question because i am not getting it that much i want at a beginner level i have just completed begginner sql and pyhton course but some things are getting really complx for me this such question which has taught in this video is it for beginners or is it for advance ?can someone help me with this plz.

  • @prasadmekala258
    @prasadmekala258 5 месяцев назад

    How many experience he had on this sql

  • @AK47-666
    @AK47-666 2 месяца назад

    Everything is fine with your videos other then just 1 major drawback
    Please whenever you alias something use "AS"
    Its very hard to understand when you don't use "AS"

  • @RamSaun
    @RamSaun 2 месяца назад

    very helpful

  • @ThePinanknagda
    @ThePinanknagda 6 месяцев назад

    Hey Toufiq, if we dont want to use the string_agg function, what other method can we use?
    My first thought came to use recurssive

  • @daskurapati1601
    @daskurapati1601 3 месяца назад

    wow great

  • @devg7929
    @devg7929 6 месяцев назад

    select id, group_concat(name) from (
    select *, sum(wt) over(partition by id order by wt) sop from (
    select lp.name, lp.wt, l.id, l.capacity from lift_passengers lp inner join lift l on l.id = lp.lift_id
    )a)b where sop < capacity
    group by 1
    for mysql

  • @sandhanamurali444
    @sandhanamurali444 4 месяца назад

    Hi I want to learn your bootcamp SQL can share the details please

  • @pradeepvadlakonda007
    @pradeepvadlakonda007 4 месяца назад

    select lift_id,group_concat(passengername) from
    (select l.id as lift_id,l.capacity_kg,lp.lift_if,lp.passenger_name as passengername,lp.weight_kg,
    sum(lp.weight_kg) over(partition by lp.lift_if order by lp.weight_kg asc) as total_weight,
    case when l.capacity_kg>sum(lp.weight_kg) over(partition by lp.lift_if order by lp.weight_kg asc) then 1 else 0 end as wight_req
    from lift l join lift_passengers lp on l.id=lp.lift_if) as x where wight_req=1 group by 1;

  • @mystery-v8y
    @mystery-v8y 6 месяцев назад

    how would you estimate the level of this task? (beginner, intermediate etc). thanks

    •  6 месяцев назад

      Intermediate

  • @nidazafarkhan8348
    @nidazafarkhan8348 3 месяца назад

    plz share sql coding competition link , i want to participate ,

  • @sivakumarisadineni3193
    @sivakumarisadineni3193 6 месяцев назад

    Hi sir,
    Could you update if you are working on any sql course like you mentioned in your previous servey?
    I have been waiting on update since that post

  • @ajaysubramaniam4453
    @ajaysubramaniam4453 5 месяцев назад

    for the sum aggregate function ,
    inside over()
    with order by clause gives running total
    without order by clause gives total sum within the window
    why it is so???

    • @varunas9784
      @varunas9784 4 месяца назад

      Hi there, if you haven't found the answer yet, here's an explanation,
      All window functions have a default frame clause 'RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW' if not specified explicitly.
      So, when you write a window clause for Sum without an 'order by ' i.e.:
      Sum(weight_kg) over (partition by lift_id) , the SQL server, by default considers the ORDER BY clause to be ordered by "lift_id" and the frame clause to be 'RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW'
      therefore, the sum function operates in a window where weight is calculated for lift_id and also orders for lift_id automatically (since you didn't specify it explicitly).
      NOTE: 'Window/ frame clause, i.e., RANGE BETWEEN UNBOUNDED...' doesn't have any effect here, it only comes into play when order by column has repeated values and if you are in need to tell apart such rows of that column

  • @kungfubala
    @kungfubala 5 месяцев назад

    Good job

  • @saib7231
    @saib7231 6 месяцев назад

    same question in meesho also asked

  • @saadabdulghani7390
    @saadabdulghani7390 6 месяцев назад

    Hi taufiq, I didn't get your solution. I'm little confused. Our task was to find the list of passengers who can be accomodated in lift without exceeding lift capacity, right? So, Shouldn't there be all the possible combinations for each lift 1 & 2, for e.g. for lift 1: { rahul, adarsh, riti},{rahul, adarsh,dheeraj},{adarsh, riti, dheeraj},{ rahul, riti, dheeraj} like that but in increasing order of weight?? Please clarify me. Thanks

    • @blse2000
      @blse2000 5 месяцев назад

      Exactly, I resonate you.
      Just asking this question here (out of curiosity) that, If we have to get all the possible combinations, Is it possible to achieve just by SQL alone? or should we be using any programming language like Python/Java etc? Please can anyone respond from this forum...

    • @Nnirvana
      @Nnirvana 5 месяцев назад

      +1

    • @rajathratnakaran7893
      @rajathratnakaran7893 5 месяцев назад

      Exactly my thought as well when i first read the question. But then why would they give lift id against the passengers. I guess we will need to accommodate Riti (in this case) on a separate row, with lift id 1, which will make more sense (Unlike the sample output).

  • @unnamamarkrishna827
    @unnamamarkrishna827 6 месяцев назад

    Nice one

    • @techTFQ
      @techTFQ  6 месяцев назад

      Thanks 🔥

  • @abhishekn2048
    @abhishekn2048 6 месяцев назад

    I am a beginner but in know thw concepts but i am not able to implement plz help me

  • @PrayasPikalmunde
    @PrayasPikalmunde 5 месяцев назад

    Justice for riti 😮

  • @selvitw7404
    @selvitw7404 5 месяцев назад

    Can any one help me on which SQL, this problem is solved, because i tried with Oracle Sql not able to solve it.

  • @sapnasaini851
    @sapnasaini851 6 месяцев назад

    dataset ?

  • @vishnureddy1491
    @vishnureddy1491 6 месяцев назад

    with cte as(
    select *,sum(weight_kg) over(partition by id order by weight_kg) as cum_sum,if(capacity_kg>=sum(weight_kg) over(partition by id order by weight_kg),1,0)as flag
    from lift2 as e
    join lift_passengers2 as f
    on e.id=f.lift_id)
    select lift_id,string_agg(passengers_name,',') from cte
    where flag=1
    group by lift_id;
    string_aggregate is not working th sql workbench ,
    can we use any alternative other than string_agg() function?

  • @Drawings-17
    @Drawings-17 5 месяцев назад

    when i using my phone and iam sleeping ,iam struggled a lot in my area they are create sleeping and they are too much struggle for me and my son.

  • @DEwithDhairy
    @DEwithDhairy 5 месяцев назад +1

    Pyspark Version of this problem :
    ruclips.net/video/0n7aGNVCtRc/видео.htmlsi=hnpqw1o3yiNLUWi2

  • @NabeelKhan-um1zk
    @NabeelKhan-um1zk 6 месяцев назад

    create table details as (with a as (select * , row_number() over(partition by lift_id order by weight asc) as ranks from passenger)
    select * , sum(weight) over(partition by lift_id order by ranks) as running_weight from a );
    select * from details;
    with a as (
    select passenger_name , lift_id from detailsss where running_weight

  • @mrbartuss1
    @mrbartuss1 6 месяцев назад +2

    Good to know you still remember your YT password!

    • @techTFQ
      @techTFQ  6 месяцев назад +1

      yeah, I am glad too :D

  • @iamkiri_
    @iamkiri_ 5 месяцев назад

    My Solution
    with cte as (
    select lp.*, l.capacity_kg
    , sum(weight_kg) over(partition by lift_id order by weight_kg) as rollsum
    from lift_passengers lp
    left join lifts l
    on lp.lift_id = l.id )
    select lift_id , string_agg(passenger_name, ',')
    from cte where capacity_kg >= rollsum
    group by lift_id ;

  • @falahanwarkhan8223
    @falahanwarkhan8223 6 месяцев назад

    With CTE AS
    (SELECT B.lift_id,B.passenger_name,B.weight_kg,
    Sum(B.weight_kg)over(partition by A.id order by B.lift_id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as RN
    from lifts A left Join lift_passengers B on A.id = B.lift_id),
    CTE2 as
    (Select lift_id,
    (case when RN < 300 and lift_id = 1 then passenger_name
    WHEN RN < 350 and lift_id = 2 then passenger_name else NULL END) as RT2 from CTE)
    SELECT lift_id, String_agg(RT2, ',') as logo from CTE2
    group by lift_id;

  • @raishabanu
    @raishabanu 3 месяца назад

    Sir please don't advertise odin they are taking only basic. I completed last month. No deeper knowledge at all.

  • @rajansingh-fw3lp
    @rajansingh-fw3lp 6 месяцев назад

    with cte as (
    select id, lift_id, passenger_name,capacity_kg, weight_kg,sum(weight_kg) over(partition by id order by id, weight_kg rows between unbounded preceding and current row)
    as cum_sum
    from lift_tst L join lift_passengers_tst P on l.id=p.lift_id
    order by id, weight_kg)
    select lift_id,listagg(passenger_name,',') as passengers from cte
    where cum_sum

  • @ashurathi9286
    @ashurathi9286 6 месяцев назад

    Arey ye zindaa hain

  • @insane_billa
    @insane_billa 3 месяца назад

    Riti sidhi se jaegi ab 😅

  • @Munna_007
    @Munna_007 6 месяцев назад

    Bhai Jan Hindi mein kyon Nahin content banate ho Hindi mein

  • @KIYASUDEENJAMALM
    @KIYASUDEENJAMALM 4 месяца назад

    WITH tab AS(
    SELECT id, passenger_name, capacity_kg,
    SUM(weight_kg) OVER(PARTITION BY lift_id ORDER BY weight_kg ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS tot FROM lift_passengers T
    JOIN lifts L ON T.lift_id = L.id),
    cte_2 AS(
    SELECT * FROM (
    SELECT id,
    CASE WHEN tot< capacity_kg THEN passenger_name ELSE NULL END AS passenger_name FROM tab) AS X
    WHERE passenger_name IS NOT NULL)
    SELECT id, group_concat(passenger_name) AS passenger_name FROM cte_2
    GROUP BY id;

  • @HARSHRAJ-gp6ve
    @HARSHRAJ-gp6ve Месяц назад

    with cte as(
    select lift_id,SUM(weight_kg)OVER(PARTITION BY lift_id ORDER BY weight_kg) as sum1 FROM lift_passengers
    ),cte1 as(
    select cte.*,capacity_kg FROM cte JOIN lifts ON cte.lift_id=lifts.id
    ),cte2 as(
    select * FROM cte1 where sum1

  • @chaitusai7674
    @chaitusai7674 5 месяцев назад

    select lp.passenger_name+',', lp.lift_id from lift_passengers lp join lift l on lp.lift_id=l.id where sum(weight_kg)