Remove Redundant Pairs - SQL Interview Query 1 | SQL Problem Level "HARD"

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ธ.ค. 2024

ความคิดเห็น • 203

  • @onkarbarhate7799
    @onkarbarhate7799 16 วันที่ผ่านมา +1

    Thank you for your SQL learning videos! Watching them has significantly boosted my confidence, and I also subscribed to your SQL session on your techtfq website.
    While going through one of your videos, I noticed a minor error: in the WHERE clause, the second condition should use 'OR' instead of 'AND'.
    Just thought to share this feedback. Keep up the great work!
    with cte as
    (select *,
    case when brand1 < brand2 then concat(brand1, brand2, year)
    else concat(brand2,brand1,year)
    end as new_grp_2
    from brands),
    cte_2 as
    (select *, dense_rank() over(partition by new_grp_2 order by brand1) as rnk
    from cte)
    select cte_2.brand1, cte_2.brand2,cte_2.year, cte_2.custom1,cte_2.custom2,cte_2.custom3,cte_2.custom4
    from cte_2
    where rnk 2 or
    (custom1 custom3 or custom2 custom4)

  • @mindlessscroll
    @mindlessscroll 9 หลายเดือนก่อน +3

    With rm as (select *,
    IF(STRCMP(brand1,brand2) > 0, concat(brand1,brand2,year), concat (brand2,brand1,year)) as con
    from brands ),
    rm1 as(
    select *,
    row_number() OVER(PARTITION BY con order by con ) as id
    from rm)
    select brand1, brand2, year from rm1 where id=1 or (custom1 custom3 and custom2 custom4)

    • @gauravtanwar8886
      @gauravtanwar8886 7 หลายเดือนก่อน

      as per the 3rd condition you need a little adjustment in your code (custom1 custom3 OR custom2 custom4)*

    • @gauravtanwar8886
      @gauravtanwar8886 7 หลายเดือนก่อน +2

      but thanks to your answer i got to know about STRCMP

  • @malcorub
    @malcorub 10 หลายเดือนก่อน +50

    I love the idea! I will be tuning in every day this month.... even on weekends with hangover. LOL

    • @techTFQ
      @techTFQ  10 หลายเดือนก่อน +7

      Thats the spirit 😃

    • @somnathdutta6311
      @somnathdutta6311 10 หลายเดือนก่อน +2

      @@techTFQ Don't give the ans in same video. give ans in next video. It will be more helpful. It will also create a hook for your next video and a short of competition as well.

    • @umangbhatnagar1415
      @umangbhatnagar1415 9 หลายเดือนก่อน +1

      @@somnathdutta6311 Why making things tough. Let it be easy. We are not as good as you. The video's purpose is to help community who is still in its very crude form.

    • @Useruse867
      @Useruse867 6 หลายเดือนก่อน

      @@somnathdutta6311 no one will ever watch as there are many channels who solve and give answer there.

  • @ganeshsundarachary3239
    @ganeshsundarachary3239 9 หลายเดือนก่อน +5

    Awesome , Great learning Experience. Pls make more such challenges.

  • @junaidmahmud2894
    @junaidmahmud2894 10 หลายเดือนก่อน +1

    Great solution. I'm afraid I am a bit late to start but I will definitely continue this!

  • @andreanlobo7373
    @andreanlobo7373 9 หลายเดือนก่อน +1

    extremely insightful.. thanks

  • @ramakrishnatirumala428
    @ramakrishnatirumala428 8 หลายเดือนก่อน

    super videos bro...keep posting

  • @ContentRoomB
    @ContentRoomB 5 หลายเดือนก่อน

    I'm finally done with query 1 with your solution help. looking forward to cracking future questions on my own

  • @pinkfloyd2642
    @pinkfloyd2642 10 หลายเดือนก่อน

    Subscribed right away. Great content. Can't wait to watch more of your videos this weekend itself.

  • @Hsalz
    @Hsalz 9 หลายเดือนก่อน

    Simply amazing. Thanks, Thoufiq!

  • @VivekKBangaru
    @VivekKBangaru 8 หลายเดือนก่อน

    Awesome TFQ

  • @rahuldey4730
    @rahuldey4730 10 หลายเดือนก่อน +1

    Loved the question Sir. Even if I was not able to solve this at my own but after I saw the solution and the logic behind this I am speechless and amazed. This is the type of content we need.

  • @VijayKumar-ec3dz
    @VijayKumar-ec3dz 8 หลายเดือนก่อน +2

    Hi sir, My solution is kind of similar as below
    with cte as (select *,case when custom1=custom3 and custom2=custom4 then 1 when custom1custom3 or custom2custom4 then 2 else 3 end as r from t1)
    select * except(r,rn) from (select *,row_number() over(partition by r,year order by year) as rn from cte) a where coalesce(case when r=1 then rn=1 else null end,1=1)

  • @shwetamishra1497
    @shwetamishra1497 10 หลายเดือนก่อน +2

    Very helpful . Thank you so much big bro for this series, just keep continue.🙏

  • @aarizaziz4380
    @aarizaziz4380 9 หลายเดือนก่อน

    Thank you very very very much for this initiative. Looking forward to a multi decade event by you just like this! You are one of the best instructors I have come across internet for SQL. hats off to you for taking time to educate us and building the community.

  • @fathimafarahna2633
    @fathimafarahna2633 10 หลายเดือนก่อน +2

    Amazing 🔥🎉

    • @techTFQ
      @techTFQ  10 หลายเดือนก่อน

      Glad you like it!

  • @beautifulworld3976
    @beautifulworld3976 9 หลายเดือนก่อน

    It is informative from the problem statement we get idea how to solve thank you so much it is helpful for me this 30 days i will become still more strong in SQL database

  • @prithvirajpatil7388
    @prithvirajpatil7388 9 หลายเดือนก่อน

    Good question❤ starting it from today.

  • @khushbu3025
    @khushbu3025 10 หลายเดือนก่อน

    Really, It's very nice 🙂 Thank you for this series.

  • @kalpeshispatil
    @kalpeshispatil 10 หลายเดือนก่อน

    You are simply amazing buddy... I am user CTE many times, but not as you shown.. Fan of yours... ❤❤ Will be tuning daily.. Your first example has cracked and shown us where we land in DB queries... Thank You For Us Efforts

  • @piyushnautiyal6271
    @piyushnautiyal6271 10 หลายเดือนก่อน +1

    amazing que and the way of solving is awesome.. thank u so much techTFQ!!

  • @yi-lehung6311
    @yi-lehung6311 10 หลายเดือนก่อน

    still the best SQL video!!!! I love this idea, please continue!

  • @mkgeidam
    @mkgeidam 10 หลายเดือนก่อน +1

    Thanks you Sir, it really helpful

  • @koushikdey100
    @koushikdey100 9 หลายเดือนก่อน

    Great !!, Thank you

  • @dataengineeringsimplified1049
    @dataengineeringsimplified1049 7 หลายเดือนก่อน +2

    with tbl as
    (
    SELECT *,case when brand1

    • @37_om
      @37_om 4 หลายเดือนก่อน

      This is somewhat more clear
      i think

  • @khushboobaghel6594
    @khushboobaghel6594 10 หลายเดือนก่อน +1

    Thankyou for guiding for 30 days it will help us to improove Sql.

  • @sourabroy7787
    @sourabroy7787 10 หลายเดือนก่อน

    great initiative and quality content 👍

  • @MwAVlogs
    @MwAVlogs 9 หลายเดือนก่อน

    I am new in this field, but like the way you explain. It is a complex one I know but still after practicing I’ll get it.

  • @johnsonrajendran6194
    @johnsonrajendran6194 10 หลายเดือนก่อน

    Love the way you teach ❤

  • @pavanigoud98
    @pavanigoud98 10 หลายเดือนก่อน +1

    Please also doo the sql interview questions for data analyst. Lots of love ❤

  • @padhenamit
    @padhenamit 10 หลายเดือนก่อน

    Thank you for your amazing lectures and feedbacks and thank you for being so supportive!

  • @inderpanda1
    @inderpanda1 10 หลายเดือนก่อน +4

    In my opinion at least out of 30 question first 5 should have been Easy to Medium Level.
    It seems to be hard and complex for me.
    The questions should have been from only 1 function among these CTE, Case, Subquery, etc

    • @amlansasmal
      @amlansasmal 9 หลายเดือนก่อน

      same brother:)

  • @ShubhamGautam-k1k
    @ShubhamGautam-k1k 9 หลายเดือนก่อน

    we can put union as well in place of or, and case statements for the conditions in place of Row_num window function, rest is same.

  • @NEHAKHANZODE-p8p
    @NEHAKHANZODE-p8p 6 หลายเดือนก่อน

    Thank you for explaining thoroughly :-)

  • @sandydsa
    @sandydsa 10 หลายเดือนก่อน

    Fantastic 🌻🌻🌻

  • @vishisbest
    @vishisbest 10 หลายเดือนก่อน

    This was pretty interesting

  • @AbhishekPandey-c8o
    @AbhishekPandey-c8o 10 หลายเดือนก่อน

    i was waiting for this

  • @livelovelaugh4050
    @livelovelaugh4050 10 หลายเดือนก่อน

    Thank you so much for starting this series. 🙏

  • @navaneeth6414
    @navaneeth6414 10 หลายเดือนก่อน

    Great! video Thanks

    • @techTFQ
      @techTFQ  10 หลายเดือนก่อน

      Glad you liked it!

  • @nointernet...1800
    @nointernet...1800 10 หลายเดือนก่อน

    Nice video

  • @haleylearn
    @haleylearn 7 หลายเดือนก่อน +1

    For condition: For pairs of brands in the same year ---> if custom1 != custom3 OR custom2 != custom4 : then keep both pairs
    Why is it (custom1 custom3 AND custom2 custom4) NOT is (custom1 custom3 OR custom2 custom4) ?

    • @AJBeiza
      @AJBeiza 3 หลายเดือนก่อน

      I had same question, I think just an error. Output is the same in this case but given other entries the output would be different

  • @splendidabhi
    @splendidabhi 10 หลายเดือนก่อน +2

    Excited to kick off the #30DaySQLQueryChallenge with Query #1! Let's sharpen those SQL skills together and ace those interview queries. Can't wait to see what we'll learn throughout this challenge! 💻💡

    • @techTFQ
      @techTFQ  10 หลายเดือนก่อน

      Amazing 😍

  • @ritika29
    @ritika29 9 หลายเดือนก่อน

    Thanks, it was Helpful 👍
    Quick question, what if there was a row with NULL in brand1 column
    Example: INSERT INTO brands VALUES ( NULL,'lava', 2020, 5, 9, NULL, NULL);

  • @MuhammedSavadkv
    @MuhammedSavadkv 8 หลายเดือนก่อน

    Great. Thank you

  • @jollymeelubari9045
    @jollymeelubari9045 9 หลายเดือนก่อน

    Thanks for this

  • @pathanfirozkhan5503
    @pathanfirozkhan5503 10 หลายเดือนก่อน +1

    Amazing video sir, Thanks for your time

  • @vishalmaurya3008
    @vishalmaurya3008 10 หลายเดือนก่อน +1

    ❤ 30days of sql >>>>75 days of 😊 hard चैलेंज 😅
    Thank you sir that is extremely amazing❤❤❤❤❤❤❤

  • @ananth.r5317
    @ananth.r5317 9 หลายเดือนก่อน

    Thanks lots..❤❤❤❤

  • @CricketLivejavwad
    @CricketLivejavwad 10 หลายเดือนก่อน +5

    Techtfq is back💯😎
    We all are excited.

  • @waynegreen7970
    @waynegreen7970 10 หลายเดือนก่อน

    Good content!

    • @techTFQ
      @techTFQ  10 หลายเดือนก่อน

      Glad you think so!

  • @aswinc4829
    @aswinc4829 10 หลายเดือนก่อน

    Thank you,it really helps

  • @Itsourfamilys
    @Itsourfamilys 8 หลายเดือนก่อน

    Thank you so much for SQL videos

  • @khushboobaghel6594
    @khushboobaghel6594 10 หลายเดือนก่อน

    Thankyou Sir

  • @srinubathina7191
    @srinubathina7191 10 หลายเดือนก่อน

    Thank You sir

  • @chahatjain3745
    @chahatjain3745 10 หลายเดือนก่อน +5

    with cte as (Select *, row_number() over(partition by Case
    when brand1>brand2 then CONCAT(brand1,brand2,year)
    else CONCAT(brand2,brand1,year) end order by year) as rn
    from brands)
    Select * from cte rn where rn=1 or (custom1 custom3 and custom2 custom4)

  • @nehalmaheshwari1999
    @nehalmaheshwari1999 4 หลายเดือนก่อน

    @techTFQ Shouldn't the custom1 of one of the row be compared with the custom3 of the other row having same airID instead of the same row?

  • @abhishekkukreja6735
    @abhishekkukreja6735 8 หลายเดือนก่อน

    Awesome, Can you share excel page : it's good to store the results and everthing in excel

  • @pavankumar-cw2sx
    @pavankumar-cw2sx 10 หลายเดือนก่อน

    @techTFQ
    Can we give OR condition instead of AND in WHERE condition at final query
    like as: where rn = 1
    or (custom1 custom3 OR custom2 custom4);
    ????????????????

  • @Venkatesh-bs7kb
    @Venkatesh-bs7kb 9 หลายเดือนก่อน

    Thanks a lot for the video. the way you explain CTE's are awesome!!
    in your solution line number 20, as per problem statement, it should be an OR condition ryt ?
    ('or (custom1 custom3 OR custom2 custom4)')

  • @PraveenSinghRathore-df3td
    @PraveenSinghRathore-df3td 2 หลายเดือนก่อน

    MYSQL solution:
    with cte as (select *, case when brand1 < brand2 then concat(brand1,'-',brand2)
    else concat(brand2,'-',brand1) end as pair from brands)
    , cte2 as (select *, row_number() over(partition by pair,year order by (select null)) as rn from cte)
    select brand1, brand2, year, custom1, custom2, custom3, custom4 from cte2
    where case when (custom1 = custom3) or (custom2 = custom4) then rn = 1
    else rn >= 1 end;

  • @manirahofred801
    @manirahofred801 8 หลายเดือนก่อน

    This was really helpful. However, if the dataset was too big and brand records were many & different, I don't think "case when" functionality would be helpful. At the moment because of the dataset we have, that would be the easiest way!

  • @sivakrishnasriram4782
    @sivakrishnasriram4782 10 หลายเดือนก่อน

    Thank You😊.

  • @jayavinayak2593
    @jayavinayak2593 10 หลายเดือนก่อน +1

    Thank You

    • @techTFQ
      @techTFQ  10 หลายเดือนก่อน

      You're welcome

  • @ManiKandan-kg5ky
    @ManiKandan-kg5ky 10 หลายเดือนก่อน

    Waiting bro

  • @riyatiwari4767
    @riyatiwari4767 10 หลายเดือนก่อน

    Can you please make video on how to write dynamic query in pyspark.
    That would be a lot of help.
    Thank u❤

  • @priyankapatil6835
    @priyankapatil6835 9 หลายเดือนก่อน

    big thanks techTFQ

  • @smrutiranjansenapati1695
    @smrutiranjansenapati1695 9 หลายเดือนก่อน

    Hi, Since it has example of 5-6 records, when we have large amount of records, how we can mak sure that the 1st condition if custom1 = custom3 & custom2 = custom4 will not be satisfied to eliminate the duplicate?
    Please reply. Thank you

  • @shristisrivastava1324
    @shristisrivastava1324 9 หลายเดือนก่อน

    How will you know when to use CTE by looking at the question, sir?

  • @hrishiAOL
    @hrishiAOL 5 หลายเดือนก่อน

    Can you suggest online SQL editor for practice?

  • @armaqanalibabaei6980
    @armaqanalibabaei6980 8 หลายเดือนก่อน

    Hi May I ask a question?even thou you have filtered where rn = 1; , I still see one rn=2 in that column why?

  • @prithvipampana1492
    @prithvipampana1492 9 หลายเดือนก่อน

    Bro @malcorub what if brand1 and brand2 length is same

  • @MrYeduguri
    @MrYeduguri 10 หลายเดือนก่อน

    Hello Thoufiq.. Thank you so much for sharing great content. Are you offering online training for sql & plsql?

  • @ahmedjassimameenco
    @ahmedjassimameenco 10 หลายเดือนก่อน

    thanks

  • @thirupathinaidusomineni
    @thirupathinaidusomineni 9 หลายเดือนก่อน

    with cte_check
    as
    (
    select *,
    case when (custom1custom3 and custom2custom4) or custom1 is null or custom2 is null or custom3 is null or custom4 is null then 1
    when brand1 = LEAD(brand2) over(order by year)
    and LEAD(brand1) over(order by year)=brand2
    and year = LEAD(year) over(order by year)
    and (custom1=custom3 and custom2=custom4) then 2 end as dd from brands
    )
    select brand1,brand2,year,custom1,custom2,custom3,custom4
    from cte_check
    where dd in (1,2)

  • @venkateshmallisetty4196
    @venkateshmallisetty4196 10 หลายเดือนก่อน +1

    it is very tipical to download the data set could you please help me with that

  • @tornado9689
    @tornado9689 10 หลายเดือนก่อน

    My question is you can also select query with column name what you have done in last to fetch the data . What is the need of using cte then

    • @codeduel
      @codeduel 10 หลายเดือนก่อน

      For Optimization sake

  • @mohdtoufique3786
    @mohdtoufique3786 10 หลายเดือนก่อน

    Thanks a lot for the content..
    WITH PAIRS AS(
    SELECT *,CASE WHEN brand1

  • @HeyyRomii
    @HeyyRomii 10 หลายเดือนก่อน +1

    Amazing problem solution 🫶🏻

    • @techTFQ
      @techTFQ  10 หลายเดือนก่อน

      Thank you :)

  • @phamnguyentrucgiang569
    @phamnguyentrucgiang569 9 หลายเดือนก่อน

    ​ @techTFQ Hi, thanks for uploading useful videos. I want to ask: this is easy, medium or hard question?

  • @teawithbaety
    @teawithbaety 4 หลายเดือนก่อน +1

    While using concat () in MySql why am I getting NULL for pair_id?

    • @SwarajLandge-c7f
      @SwarajLandge-c7f 4 หลายเดือนก่อน

      use this code ---just change case condition
      with cte1 as( select *,
      case
      when brand1

    • @teawithbaety
      @teawithbaety 4 หลายเดือนก่อน +1

      @@SwarajLandge-c7f okay. Thanks for your help!

  • @lakshitgupta5064
    @lakshitgupta5064 10 หลายเดือนก่อน

    What if after creating the pairid, we just perform groupby operation based on pairid, custom1, custom2, custom3 and custom4 and then filter it by using having count = 1? Will this approach work?

  • @sweetysweetyvghb
    @sweetysweetyvghb 6 หลายเดือนก่อน

    I couldn't solve myself, but I find it easy after seeing the solution..not sure y.

  • @sandeepkumarsingh7981
    @sandeepkumarsingh7981 10 หลายเดือนก่อน

    Hi Tafiq, I'm also your huge friend, and your technic is always help to improve my skill. I saw the solution and the logic behind this I am speechless and amazed. This is the type of content we need.
    thanks you so much.
    Hey Tofiq, I have downloaded you content but that file is blank. please help me on that.....

  • @enisertem9738
    @enisertem9738 21 วันที่ผ่านมา

    with base as (select *,
    case when brand1

  • @SamiUllah-ie7pn
    @SamiUllah-ie7pn 10 หลายเดือนก่อน

    Thanks you😊

    • @techTFQ
      @techTFQ  10 หลายเดือนก่อน

      Welcome 😊

  • @krishkhemani96
    @krishkhemani96 9 หลายเดือนก่อน

    I am sure you love cases😂.Make a video on them please 😅

  • @LAVANYAp-u1u
    @LAVANYAp-u1u 9 หลายเดือนก่อน

    I try to download the dataset but I could not able to do it can you help me to download the data set

  • @tarakganesh1472
    @tarakganesh1472 9 หลายเดือนก่อน

    Based on the PS shouldn't it be `where rn=1 or custom1 custom3 or custom2 custom4 `?

    • @saitejamanchi1389
      @saitejamanchi1389 9 หลายเดือนก่อน

      Yes, it should be. I was looking for this comment before putting up.

  • @Dopamine.Moments
    @Dopamine.Moments 10 หลายเดือนก่อน

    You are helping me a lot to build my understanding about SQL, Thanks to you I have cleared most of the interviews by watching and following you. I will be turning in for this series. 😊

  • @amanchourasia8280
    @amanchourasia8280 9 หลายเดือนก่อน +1

    what if the brand names start with the same letter?

  • @harinadhbabu309
    @harinadhbabu309 4 หลายเดือนก่อน

    hi taufiq, Your videos are helping me alot, but your blog has not been opening for last few days. Please do needfull

  • @madhurimadas6260
    @madhurimadas6260 10 หลายเดือนก่อน

    amazing!! can you tell me what to do in case of equal length of brand1 and brand2?
    thanks in advance :)

    • @bhanugoyal428
      @bhanugoyal428 9 หลายเดือนก่อน

      you can put that condition in the same case along with < condition. Ultimately we are concatenating all the records in that cte.

  • @cosmicball4888
    @cosmicball4888 9 หลายเดือนก่อน

    but how it check the condition custom1=custom3 and custom2-=custom4
    ?

  • @NikhilRaj-sd4xm
    @NikhilRaj-sd4xm 3 หลายเดือนก่อน

    Here is my Solution:
    -- Define the first CTE to calculate the next brand values
    WITH cte AS (
    SELECT *,
    LEAD(brand2, 1, NULL) OVER (PARTITION BY year ORDER BY year) AS next_brand,
    LEAD(brand1, 1, NULL) OVER (PARTITION BY year ORDER BY year) AS next_brand1
    FROM brands
    ),
    -- Define the second CTE to categorize each row
    cte2 AS (
    SELECT *,
    CASE
    WHEN brand1 = next_brand
    AND brand2 = next_brand1
    AND custom1 = custom3
    AND custom2 = custom4 THEN 'group'
    ELSE 'not a group'
    END AS GroupType
    FROM cte
    )
    -- Select rows where GroupType is 'not a group'
    SELECT brand1,
    brand2,
    year,
    custom1,
    custom2,
    custom3,
    custom4
    FROM cte2
    WHERE GroupType = 'not a group';
    Please suggest if it is a good solution or not?

  • @sriharidhanakshirur9245
    @sriharidhanakshirur9245 10 หลายเดือนก่อน

    Intresting Question!
    Im sure if anyone deligently follow this #30DaysSQLChallenge
    his/her SQL skills drastically improves

  • @HERO3530
    @HERO3530 2 หลายเดือนก่อน

    This solution only works when first pair is "custom1 = custom3 OR custom2 = custom4 ". If the first pair were "custom1 != custom3 OR custom2 != custom4 " and the second pair were "custom1 = custom3 OR custom2 = custom4 ". then it would return only one pair despite one of the pair is "custom1 != custom3 OR custom2 != custom4 ".

  • @vamshijiguru7636
    @vamshijiguru7636 6 หลายเดือนก่อน +1

    select brand1,brand2,year,custom1,custom2,custom3,custom4 from (
    select *, row_number ()over (partition by chg,custom1,custom3) rn From (select* ,
    coalesce(case when custom1 = custom3 and custom2 = custom4 then 1
    when custom1 != custom3 OR custom2 != custom4 then 0 end,0) chg from brands)a)a where rn =1

  • @m.kirubakaran6564
    @m.kirubakaran6564 10 หลายเดือนก่อน

    🤞🙏🏻

  • @manvendramingwal8696
    @manvendramingwal8696 8 หลายเดือนก่อน

    how about 100 days of database series,from 0 to 100 making people perfect in DB, i would like to join.

  • @yashmistry1424
    @yashmistry1424 9 หลายเดือนก่อน

    Can we use self join instead here!