Solving a Real SQL Interview Problem | Job Vacancies SQL Query

Поділитися
Вставка
  • Опубліковано 26 лис 2024

КОМЕНТАРІ •

  • @raghulmohan5937
    @raghulmohan5937 Рік тому +10

    You are master in sql we need more problems like this

  • @Mayank-jw9yy
    @Mayank-jw9yy 4 місяці тому

    this video is absolute gem to watch, no better person available on internet to teach you SQL.

  • @decimus1447
    @decimus1447 10 місяців тому

    I did it using the recursive method. Don't worry about column names in recursion. I just needed to understand recursion.
    with t1 as
    (select name, position_id,
    ROW_NUMBER() over(partition by position_id order by id) as rn
    from job_employees
    )
    ,job_cte as
    (select id as dd, 1 as cnt, title, groups, levels, payscale
    from job_positions
    union all
    select b.id, cnt+1, b.title, b.groups, b.levels, b.payscale
    from job_positions b
    inner join job_cte a on a.dd = b.id and cnt

  • @vikrantheswar7685
    @vikrantheswar7685 Рік тому +15

    I really like your explanation. I can see your teaching passion in it. Continue sharing knowledge 👍🙌👏

  • @Manzur.A
    @Manzur.A Рік тому

    This UA-camr is the best and will go far more than other UA-camrs.

  • @martinberger365
    @martinberger365 8 місяців тому

    You rock, bro! Haven't seen someone that keen on SQL than you!

  • @viktorponomarev4048
    @viktorponomarev4048 Рік тому

    The same solution pop-uped in my head. Definitely there are other ways to solve the problem, but the shown solution is clever and readable and I cant figure out the better one.

  • @kaivalyapatkar9288
    @kaivalyapatkar9288 Рік тому +1

    I request you to please start a Interview Problems Series! It would help a lot!

  • @Tusharchitrakar
    @Tusharchitrakar Рік тому +1

    I used recursive cte to stack up the job postings (similar to ungrouping) but thanks for this alternate solution

  • @AdilShahzad-l7j
    @AdilShahzad-l7j 9 місяців тому

    This dude is a genius 🎉

  • @babahussain786
    @babahussain786 Рік тому +4

    First of all thanks for uploading this type of SQL video and Please upload more videos like this and if you have time please make live videos as well

    • @techTFQ
      @techTFQ  Рік тому +2

      Live streaming to solve problems.. good suggestion, will consider it

  • @yugendarsairam9688
    @yugendarsairam9688 Рік тому +3

    Hey Toufik, your lectures are super helpful in understanding the concepts in a much better way. Appreciate your inputs here. Could you please make a video on transactions and indexes, that would really help a lot to all our folks.

  • @ejjirotusrinivas8376
    @ejjirotusrinivas8376 Рік тому +4

    with cte(lvl,id,title,groups,levels, payscale,totalpost) as (select 1 as lvl,id,title,groups,levels, payscale,totalpost
    from job_positions union all select lvl+1 as lvl,id,title,groups,levels, payscale,totalpost
    from cte where lvl

  • @dantushankar4470
    @dantushankar4470 5 місяців тому

    My solution which is little similar:
    with cte as (select a.title as t ,a.groups as g ,a.levels as l ,a.payscale as p , b.name as n from (select jp.*, row_number() over (partition by id order by id) as r1 from job_positions jp, generate_series(1,jp.totalpost)) a left join
    (select *, row_number() over (partition by position_id order by id) as r2 from job_employees) b on a.r1 = b.r2 and a.id = b.position_id)
    select t, g, l, p, case when n is null then 'Vacant' else n end as Emp_Name from cte;

  • @RafidShahriar-h4m
    @RafidShahriar-h4m Рік тому +2

    Mine solution was same as yours. Except I use recursive CTE to generate series in MS SQL. 😀

    • @anjankumaro7530
      @anjankumaro7530 Рік тому

      Can you share me the code of CTE. your used.

    • @sammail96
      @sammail96 8 місяців тому

      @@anjankumaro7530I don't know exactly his solution but let try this oracle sql query: WITH CTE AS (
      SELECT E.*, ROW_NUMBER() OVER (PARTITION BY GROUPS ORDER BY GROUPS) AS RN FROM (
      SELECT * FROM JOB_EMPLOYEES J
      JOIN JOB_POSITIONS JP
      ON J.POSITION_ID = JP.ID) E),
      CTE1 AS (
      SELECT F.*, ROW_NUMBER() OVER (PARTITION BY GROUPS ORDER BY GROUPS) AS RN FROM (
      SELECT
      ID,
      TITLE,
      GROUPS,
      LEVELS,
      PAYSCALE
      FROM job_positions
      CONNECT BY PRIOR ID = ID
      AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL --if not used then error: CONNECT BY LOOP in user data
      AND LEVEL

  • @meenarnath9091
    @meenarnath9091 8 місяців тому

    This is really a service. Thank you so much Sir.

  • @ibrahimidris7741
    @ibrahimidris7741 Рік тому +1

    Select Emp_name, title, Group, Level, payscal
    From Emp
    Where Position_ID = ID,

  • @shrinath29
    @shrinath29 Рік тому +16

    Please upload more videos like this 👌👌

    • @ryuhayabusa3540
      @ryuhayabusa3540 Рік тому +3

      I love theses videos

    • @techTFQ
      @techTFQ  Рік тому +2

      Thank you guys 😍

    • @armaanp5585
      @armaanp5585 Рік тому

      Indeed these are good videos. I found the below interesting SQL interview task for Data Analyst. This may help.
      ua-cam.com/video/g-bLekv2kjU/v-deo.html

  • @satyaprakashdash459
    @satyaprakashdash459 4 місяці тому

    with recursive cte as (
    select id,title,groups,levels,payscale,totalpost from job_positions
    union
    select id,title,groups,levels,payscale,totalpost-1 as totalpost from cte where totalpost >1
    ),cte2 as (select id,name,position_id, row_number() over(partition by position_id) as rn from job_employees)
    , cte3 as(
    select a.*,b.* from cte a
    left join cte2 b on a.id=b.position_id and a.totalpost=b.rn)
    select title, groups,levels,payscale,case when name is not null then name else 'Vacant' end as employeename from cte3

  • @aadamhaydin5895
    @aadamhaydin5895 Рік тому

    Really loved the way you simplied the problem.

  • @priyankasuryavanshi6888
    @priyankasuryavanshi6888 Рік тому

    Your explanation is on another level, Thanks!!! It's really helpful

    • @techTFQ
      @techTFQ  11 місяців тому +1

      You're very welcome!

  • @archisingh9892
    @archisingh9892 Рік тому +6

    Sir.... Why I am not getting idea to write query like you did in this video.... I know each functions but still I am. Not able to write complex query. Please give me some idea how can I improve atleast 40% of your SQL knowledge.

    • @techTFQ
      @techTFQ  11 місяців тому +2

      Practice. All the best

  • @swapnildhivar930
    @swapnildhivar930 Рік тому +1

    I solved using Cte ' s only and another solution is using recursive cte ( i used MySQL)

    • @techTFQ
      @techTFQ  Рік тому

      Awesome 👌 well done

  • @monicabn3067
    @monicabn3067 Рік тому

    Best one sir❤ please keep educating and challenging us🎉

  • @allrounderashok4712
    @allrounderashok4712 4 місяці тому

    SQL SERVER SOLUSTION
    with cte as
    (
    select 1 n, id,title,groups, level, payscale,totalpost from postition
    union all
    select n+1,id,title,groups,level,payscale,totalpost from cte
    where n

  • @felipemv13
    @felipemv13 Рік тому +1

    Parabéns pelo ótimo vídeo - ótima explicação e detalhamento de cada passo. Muito bom!!!
    Congratulations for the great video - great explanation and detailed step by step. Very good!!!

  • @dilipinamdar5523
    @dilipinamdar5523 Рік тому +1

    Thanks for uploading this type of SQL video..I am unable to use generate_series function in mysql ..please suggest!!!!

  • @MdNisarAhmed-de7vd
    @MdNisarAhmed-de7vd Рік тому

    Your content is so good that i like your video before even watching ❤️

  • @shiju94
    @shiju94 Рік тому

    Wonderful explanation sir.

  • @Venkat.devisetti
    @Venkat.devisetti Рік тому +2

    Hi Sir,
    I have answered by pausing your video
    Below is my query, not sure whether u used same way or not
    with recursive job_positions_data as
    (
    select id,title,grp,levels,payscale,1 as row_id,totalpost from job_positions
    union
    select id,title, grp,levels,payscale,row_id + 1 as row_id,totalpost from job_positions_data
    where row_id

  • @abhijathprasanth8542
    @abhijathprasanth8542 Рік тому +1

    Hi, can you upload the same in oracle db?

  • @csekhar4155
    @csekhar4155 Рік тому +3

    Your teaching is awesome. When are you starting sql boot camp for new batch?

  • @avinashpratapsingh3875
    @avinashpratapsingh3875 Рік тому +1

    Hi Thoufiq thanks for this question, please make video for query asked in MAANG companies.

  • @huzaifahshah3841
    @huzaifahshah3841 Рік тому

    Yes sir make more Videos solved the problems

  • @sammail96
    @sammail96 8 місяців тому

    This is very interesting problem

  • @chibumbamohammed5006
    @chibumbamohammed5006 Рік тому +1

    I have liked this video it so challenging.

  • @mikarshdataanalyst4086
    @mikarshdataanalyst4086 Рік тому

    Great video Thoufiq!

  • @shaikhanuman8012
    @shaikhanuman8012 Рік тому

    Clear cut explanation tq sir

  • @integer4531
    @integer4531 Рік тому +3

    My version, But a bit unreadable(
    with cte as (select level rownb from dual connect by level

    • @techTFQ
      @techTFQ  Рік тому +2

      nice man, well done

  • @olaidealafia1965
    @olaidealafia1965 Рік тому

    Very helpful and detailed

    • @techTFQ
      @techTFQ  11 місяців тому

      Glad you liked it

  • @Canadavlogsbyanu
    @Canadavlogsbyanu Рік тому

    I really loved your videos❤

  • @sanmeetsingh8255
    @sanmeetsingh8255 Рік тому

    Great explanation so I also want to send you an interview question related to SQL. Can you please tell me where can I send that question?

  • @kashmirshadows8150
    @kashmirshadows8150 Рік тому

    Thanks you Thoufiq
    Any update on the Udemy course ??

  • @edwardmensah4110
    @edwardmensah4110 Рік тому +1

    Thanks.
    Please make more of this video

  • @murapalasravani2519
    @murapalasravani2519 Рік тому

    SIR, we can also join job_positions and employee by only using position_id as common column right? then what is the need of using row number window function there?

  • @nieja5920
    @nieja5920 Рік тому

    Thanks!! learnt something new today, can you upload a version of this using recursive sql? Thanks!

  • @manickavasuki2375
    @manickavasuki2375 Рік тому +4

    Hi Thoufiq I want to learn sql from basic to advance when are you launching ur course in Udemy

    • @YasinKAYA-do4ek
      @YasinKAYA-do4ek Рік тому +1

      m2

    • @techTFQ
      @techTFQ  Рік тому +3

      I will launch the course soon and it will be on my own platform .. working on it currently

    • @YasinKAYA-do4ek
      @YasinKAYA-do4ek Рік тому

      @@techTFQ so no udemy then. Will there be certificate? I wanna show of that I learned SQL in my cv. Otherwise people don't take it seriously when I say I have been managing ERP database for years. Apperantly some paper makes more impact than years of developing ERP software on my own.

  • @kk-rk9xg
    @kk-rk9xg Рік тому +3

    Will you be launching an SQL bootcamp later this year?

    • @techTFQ
      @techTFQ  Рік тому +1

      Yes I’ll launch a recorded sql course next month

    • @mdammar
      @mdammar Рік тому

      Keep price less 😅

  • @rajasekhar8261
    @rajasekhar8261 Рік тому

    Any update on your oracle course learning videos. You mentioned that you are going to create a platform and place your videos there?

  • @kirankumarbm7391
    @kirankumarbm7391 Рік тому +1

    Superb, Thanks

  • @siddharthshivdasani
    @siddharthshivdasani Рік тому

    Hey! What if we took row number instead of generate series for job_positions table n gonna partition by title which had the value of manager n all…. It would also give same output na??

  • @beks5755
    @beks5755 Рік тому

    @techTFQ I assume this task is not from a junior position interview but more like mid or senior-level? Am I right?

  • @santhoshKumar-zf7ox
    @santhoshKumar-zf7ox Рік тому

    Hi, I have a question on dates, I need to get date of 2 or 3rd occurence of Monday in a month, please make a video or SQL query..

  • @SohelamarullaShaik
    @SohelamarullaShaik Рік тому +2

    Sir I have a task releted to banking sector for Sql how can I send you question

  • @nachiketpalsodkar4356
    @nachiketpalsodkar4356 Рік тому +9

    Another Simpler WAY!!!!
    ;
    WITH cte as (
    SELECT e.id,title,groups,levels,payscale,name,totalpost
    , ROW_NUMBER() OVER(PARTITION BY p.groups ORDER BY p.groups) as RNK
    FROM job_employees as e CROSS JOIN job_positions as p )
    ,cte1 as (
    SELECT *
    FROM cte
    WHERE RNK

    • @techTFQ
      @techTFQ  Рік тому +2

      Nice .. thanks for sharing

    • @nachiketpalsodkar4356
      @nachiketpalsodkar4356 Рік тому

      @@techTFQ Most welcome

    • @florincopaci6821
      @florincopaci6821 Рік тому

      Your solution return incorect results.

    • @nachiketpalsodkar4356
      @nachiketpalsodkar4356 Рік тому

      @@florincopaci6821 Kindly check the table names that you are using also i have used SQL server for the solution

    • @florincopaci6821
      @florincopaci6821 Рік тому +1

      @@nachiketpalsodkar4356 You are right. Your solution gave correct Output in Sql Server and Postgresql but in Oracle-NO.
      Thank you

  • @nandinimnair9915
    @nandinimnair9915 Рік тому

    Hi, Thankyou for yet another wonderful video.can you please let me know which oracle certification a person with 12 yrs of experience in plsql should take..?

  • @paularakowska6060
    @paularakowska6060 Рік тому

    Amazing, thanks!;)

  • @nivisworld1513
    @nivisworld1513 Рік тому

    Sir, please post all the sql classes please sir..........i am trying for job but so many qns on sql they are asking.....iam very poor in sql....but while listening your classes i clearly understand the concept ......plz....if i want talk about course personally ...how cam i contact you sir.....plz rply me sir....

  • @gobindaroy7811
    @gobindaroy7811 Рік тому +1

    Please upload more such videos

  • @jithin_raj
    @jithin_raj 8 місяців тому

    with recursive cte_rec as
    (select id,title,groups,levels,payscale,totalpost, 1 as level
    from job_positions
    union
    select id,title,groups,levels,payscale,totalpost,level+1
    from cte_rec
    where level

  • @ganeshv791
    @ganeshv791 Рік тому

    Vera level

  • @TheDataMagic_x
    @TheDataMagic_x 11 місяців тому

    You have other options to solve because sir my system does not accept the generate_ series' function

  • @devarakondasankararao3802
    @devarakondasankararao3802 Рік тому

    Great video

  • @bijumohan9460
    @bijumohan9460 Рік тому

    Hi Taufiq can you pls do a video on using connect by clause in oracle?

  • @funshojegsin5431
    @funshojegsin5431 10 місяців тому

    pls which sql database are you using
    because I'm using azure?

  • @Manojkumar__
    @Manojkumar__ Рік тому +1

    where can I learn these kind of new functions like Generate_series?

    • @techTFQ
      @techTFQ  Рік тому

      google bro, i am not aware of any cheat sheet with this info

  • @vijayroyal12
    @vijayroyal12 Рік тому

    Please upload more scenarios anna

  • @ParhamFarjam-n3b
    @ParhamFarjam-n3b Рік тому

    hello, would you please solve some interviews like these are but for python?

  • @ajkuchipudi893
    @ajkuchipudi893 Рік тому

    pls upload more like this

  • @abdullahsheikh5459
    @abdullahsheikh5459 8 місяців тому

    How do I solve this query in mysql DB as generate_series() is not present in mysql ??

  • @sajidulahmed7972
    @sajidulahmed7972 Рік тому

    Thanks for the problem! May I know, if this is the question for an experienced person who’s looking for a Data role or even for freshers, we gonna get such questions? And if it’s for an experienced guy, then may I know the count of exp? If any one can help me as I am trying to change my domain into Data roles.

  • @charlesarome5792
    @charlesarome5792 Рік тому

    Good content, u are too fast in ur delivery, please ,if u can speak slowly so we can grasp

  • @tbjapbtu10
    @tbjapbtu10 Рік тому

    Thanks a lot

  • @lovebites4098
    @lovebites4098 Рік тому

    can u please find how to do the same in mysql

  • @newenglandnomad9405
    @newenglandnomad9405 Рік тому +1

    Would this qualify as intermediate or advanced? I can't get generate series to work on mysql 8 workbench.

    • @techTFQ
      @techTFQ  Рік тому +2

      I would say intermediate .. in MySQL you can solve it using recursive sql .. I’ve shared the solution in my blog

  • @viveks4935
    @viveks4935 Рік тому

    How to solve it in mysql and oracle db?

  • @shivinmehta7368
    @shivinmehta7368 11 місяців тому

    my solution
    with recursive cte as
    (
    select id,title,groups,levels,payscale,totalpost,1 as n
    from job_positions
    union
    select id,title,groups,levels,payscale,totalpost,n+1 as n
    from cte where totalpost>n
    )
    select cte.title,cte.groups,cte.levels,cte.payscale,cte.totalpost,coalesce(e.name,'vacant')
    from cte
    left join
    (select *,row_number() over(partition by position_id order by id) as rn from job_employees) e
    on cte.id=e.position_id and cte.n=e.rn
    order by cte.id

  • @sreenivasulukanchi1612
    @sreenivasulukanchi1612 10 місяців тому

    In MS SQL Server, there is no Generate_Series.

  • @Jami_Sarat_Kumar580
    @Jami_Sarat_Kumar580 Рік тому

    Good explanation ,
    But generate_series not available in sql server management studio 2022. And i have one doubt ISNULL replacing null values and COALESCE its returns 1st non null value of in our table data am i right?
    Then what is difference main between ISNULL and coalesc?
    Can you please tell me tfq

    • @ManpreetSingh-tv3rw
      @ManpreetSingh-tv3rw Рік тому

      you can use recursive cte to do the same thing, I have mentioned in comments my solution for sql server

  • @Krishna48784
    @Krishna48784 Рік тому

    I have one small question, in postgresql how can we return multiple results sets with different column size , Ms SQL server returned this , but in postgresql is it possible. Give answer please

  • @mmanoj3287
    @mmanoj3287 Рік тому

    I have one interview Question I can’t answer, can you help me
    Q : one table have 30 Indexes how to find good and bad one In SqlServer

  • @RaviYadav-cx2pb
    @RaviYadav-cx2pb Рік тому

    Can you please launch new course beginners to pro sql with project on graphy

  • @in-and-around3681
    @in-and-around3681 Рік тому

    Hi sir i have I sql interview query please help me.
    Write a query to get all months end date of any year or given year.

  • @Ibad_gamer937
    @Ibad_gamer937 Рік тому

    Amazing

  • @joerokcz
    @joerokcz Рік тому +1

    Please upload more

  • @rishabhgupta3826
    @rishabhgupta3826 Рік тому

    Hi Sir, Require one help related to mysql query where a table having data into month and yearwise only with single or multiple value so want to extract data where if same month and year repeated twice with different value then column M1 return M1='R' and again M1='B' and if same month and year repeated only once say Aug2023 then M2='R' and again M2=' ' and if again another same month and year repeated only once I.e sept2023 then M3='B' and M3=' ' respectively into mysql, kindly help me to share the way or query through which I can make on my db and can extract the data

  • @life69kk
    @life69kk Рік тому +1

    Please make plsql course?

    • @techTFQ
      @techTFQ  Рік тому

      I’m planning for next year

  • @samratsingha8515
    @samratsingha8515 Рік тому

    Super

  • @powerstock9464
    @powerstock9464 Рік тому

    Not sure If I am new to SQL or this was very confusing for me :(

  • @durganjaneyulukatiki1781
    @durganjaneyulukatiki1781 Рік тому +1

    Hi Thofic i want sql course recording classes

    • @techTFQ
      @techTFQ  Рік тому +1

      recorded sql course should release next month

  • @luckyyyyy790
    @luckyyyyy790 Рік тому +1

    bro make a video on keys in sql

    • @techTFQ
      @techTFQ  Рік тому

      you mean constraints?

    • @luckyyyyy790
      @luckyyyyy790 Рік тому +1

      yes sir
      @@techTFQ

    • @luckyyyyy790
      @luckyyyyy790 Рік тому +1

      when can i expect a video sir

    • @techTFQ
      @techTFQ  Рік тому

      Not really planning on it .. I teach it during my sql course

    • @luckyyyyy790
      @luckyyyyy790 Рік тому

      Where can I get your SQL course

  • @manoj_m0393
    @manoj_m0393 Рік тому

    This seems so overwhelming

  • @anudeepreddy5559
    @anudeepreddy5559 2 місяці тому

    ❤🔥

  • @Alexpudow
    @Alexpudow 10 місяців тому

    with a as (
    select position_id, char(null) name, cnts, totalpost
    from
    (select distinct position_id, totalpost, totalpost - count(a.id) over(partition by position_id) cnts,
    count(a.id) over(partition by position_id) cnt
    from
    job_employees a join
    job_positions b on a.position_id = b.id) t
    where cnt

  • @fathimafarahna2633
    @fathimafarahna2633 Рік тому +1

    👌👌👌👌

  • @codingoak4701
    @codingoak4701 Рік тому

    I have a solution to this posted on my channel.

  • @haneefurs
    @haneefurs Рік тому

    Thanks a lot