Practice SQL Interview Query | Big 4 Interview Question

Поділитися
Вставка
  • Опубліковано 10 лип 2024
  • The first 1,000 people to use the link will get a 1 month free trial of Skillshare: skl.sh/techtfq09221
    In this video, I will be solving a REAL SQL Interview Questions asked during an interview by one of the BIG 4 Accounting firms (PwC, EY, KPMG, Deloitte).
    This is a very common question asked during SQL Interviews hence we shall look at the approach and the thinking you need to have when solving these kind of SQL problems.
    All the dataset, scripts and SQL queries used in this video can be downloaded for free from my website. Link below:
    techtfq.com/blog/practice-sql...
    Timestamp:
    00:00 Intro
    00:28 Understanding the problem statement
    02:21 Approach to solve similar SQL Problem
    06:05 Free Skillshare promo link
    07:41 Solution to SQL Problem
    FTC disclaimer: This video was sponsored by Skillshare.
    🔴 My Recommended courses 👇
    ✅ FREE SQL Practice course (valid only until 30-Sep-2022): learnsql.com/course/postgresq...
    ✅ Learn complete SQL: learnsql.com/?ref=thoufiqmoha...
    ✅ Practice SQL Queries: www.stratascratch.com/?via=te...
    ✅ Learn Python: codebasics.io/courses/python-...
    ✅ Learn Power BI: codebasics.io/courses/power-b...
    🔴 WATCH MORE VIDEOS HERE 👇
    ✅ SQL Tutorial - Basic concepts:
    • SQL Tutorial - Basic c...
    ✅ SQL Tutorial - Intermediate concepts:
    • SQL Tutorial - Interme...
    ✅ SQL Tutorial - Advance concepts:
    • SQL Tutorial - Advance...
    ✅ Practice Solving Basic SQL Queries:
    • Practice Solving BASIC...
    ✅ Practice Solving Intermediate SQL Queries:
    • Practice Solving INTER...
    ✅ Practice Solving Complex SQL Queries:
    • Practice Solving COMPL...
    ✅ Data Analytics Career guidance:
    • Data Analytics career ...
    ✅ SQL Course, SQL Training Platform Recommendations:
    • SQL Course / Training
    ✅ Python Tutorial:
    • Python Tutorial
    ✅ Git and GitHub Tutorial:
    • Git and GitHub
    ✅ Data Analytics Projects:
    • Data Analytics Projects
    THANK YOU,
    Thoufiq

КОМЕНТАРІ • 200

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

    The first 1,000 people to use the link will get a 1 month free trial of Skillshare: skl.sh/techtfq09221

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

    You explain things very effortlessly but efficiently. I really grasp almost everything you say. Thanks for all your intellects & insights.

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

    Thanks TF for the generous sharing! Love how you explain it explicitly. Will continue to follow for more

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

    Always a treat watching your videos, specially when you point out that it's important to understand on how to approach the problem instead of just showing the solution. Thank you! I keep on learning because of you sir!

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

    Liked your approach and way of explaining.!!!
    This was my approach which was easy to understand for me -
    select Brand from
    (select * ,
    Amount - lag(Amount) over(partition by Brand order by Year) as diff
    from brands) t1
    group by Brand
    having min(diff) > 0;

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

    Thanks for explaining it really well! I've been putting off learning soft soft cuz it looks so intimidating but now that I easily understood the

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

    U not only solve problems u always give us idea about how to approach particular questions

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

    It seems so easy when you explain the solution to the given problem.

  • @kunalkumar-hl6gv
    @kunalkumar-hl6gv 11 місяців тому

    this is real nice video !!!! thank you for sharing this stuff

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

    Great! You made sql fun to learn.

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

    Taufiq the way you explain is amazing and never seen such a teacher

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

    My Solution :-
    with red as (
    select *,
    RANK() over(partition by brand order by amount asc) as 'rnk'
    ,rank() over(partition by brand order by year asc) as 'yrnk'from brands
    )
    select * from brands where brand not in (
    select distinct brand from red where rnkyrnk)

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

    You are the best!!! Thank you.

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

    Loved it want more video like this

  • @BOSScula
    @BOSScula Рік тому +7

    You can separate two columns and join and compare
    a.year - b.year > 0 AND a.amount - b.amount > 0

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

    Thanks you Bro , To showing the how to deal such type of question with positive approach as well as logical thinking technique

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

    Thank you very much Sir, for this question and great explanation.

  • @biplabchatterjee677
    @biplabchatterjee677 Рік тому +12

    Thank you so much Thoufiq . I really appreciate your support.

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

      Thank you for sharing the query bro :)

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

    Explained very well 👍

  • @devforall2006
    @devforall2006 9 місяців тому

    Thanks a lot for sharing the solution

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

    Thank you for Lead function information

  • @self-learning1824
    @self-learning1824 Рік тому

    Great explanation

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

    Amazing and great explanation sir

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

    I loved all your video .. thanks a lot for explaining complex query in simple way..

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

    Nice explanation Toufiq. Keep up the good work buddy !!

  • @Yinusa00
    @Yinusa00 7 місяців тому

    Amazing thank you

  • @srushtiOm
    @srushtiOm 15 днів тому

    My solution -
    with cte as (
    select *,
    rank() over(partition by brand order by amount, Year asc) as rnk
    from brands
    ),
    cte_1 as (
    Select *,
    case when rnk < lead(rnk) over(partition by brand order by brand, year) then 1
    when rnk+1< lead(rnk,2) over(partition by brand order by brand, year) then 1
    when rnk > lag(rnk) over(partition by brand order by brand, year) then 1
    when rnk > lag(rnk,2) over(partition by brand order by brand, year) then 1
    end as 'flag'
    from cte),
    cte_2 as (
    Select brand, amount, sum(flag) over(partition by brand order by year range between unbounded preceding and
    unbounded following) as total_flag from cte_1)
    Select * from cte_2
    where total_flag = 3

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

    Such a helpful video

  • @1-audio353
    @1-audio353 Рік тому

    LIKE, THANKS BRUH!

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

    Thanks for sharing.

  • @avi8016
    @avi8016 Рік тому +5

    Great explanation as usual sir 💯

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

    Thank you sir

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

    with cte as (
    select * ,
    case when lead(amount)over(partition by brand order by year) is null then 1
    when amount

  • @yamunau.yamuna5189
    @yamunau.yamuna5189 Рік тому

    Thanks bro this question asked in yestarday interview i am unable to write query now i learned how to write thanks

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

    Learnt something new

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

    Love your videos and explanation ...
    Could you share your thoughts on my solution below
    select Distinct(Brand) from brands where
    Brand not in
    (select B.Brand from
    (select A.*,
    case
    when Amount>A.Prev_year_record then 1
    else 0
    end as flag
    from
    (select *,
    lag(amount,1,0) over(partition by Brand order by Year) as Prev_year_record
    from brands) as A) as B
    where B.flag = 0 );
    Is there any way i can make it more shorter ?

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

    Brilliant Logic man!!

  • @dwaipayansaha4443
    @dwaipayansaha4443 Рік тому +5

    My solution:-
    select * from brands
    where Brand in (with t1 as(select *,lag(amount,1,0) over(partition by Brand order by Year) lag_amt,Amount-lag(amount,1,0) over(partition by Brand order by Year) diff
    from brands)
    select Brand from t1
    group by Brand
    having sum(case when diff>0 then 1 else 0 end)=3);

  • @hilarylomotey7051
    @hilarylomotey7051 Рік тому +13

    Thanks Boss. I like the lag amount+1 option I thought of a different option initially but as usual u make it too easy , of course you r the SQL Bruce Lee. Cheers and excellent video as well.

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

      Would have just filled the null columns with 1 by using isnull

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

      😃 Thank you Hilary!
      Yeah, amount+1 was the first thing that popped to my brain but there can be so many different ways to do it including your approach.

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

      Or put “then 0 else 1” in case condition and fetch brand with all zeros

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

      WITH CTE AS (
      SELECT Year , Brand ,Amount ,CASE
      WHEN Amount < lead(Amount,1,amount+1) OVER(partition by Brand order by Year)
      AND Amount < lead(Amount,2) OVER(partition by Brand order by Year)
      THEN 1 ELSE 0
      END AS Flag
      FROM brands)
      SELECT * FROM brands WHERE Brand IN (SELECT Brand FROM CTE WHERE Flag =1)

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

      ​@@AmrutayaneeHarmony in that case for the last row the condition becomes false and fetches 1 as flag so it would be 0 0 1 .

  • @Ravishanker.Muniasmy
    @Ravishanker.Muniasmy Рік тому +1

    Thank you for sharing the interview question. My solution:
    WITH CTE AS
    (SELECT *,
    CASE WHEN amount > LAG(amount, 1, amount-1)
    over(partition by brand order by year)
    THEN 1 ELSE 0
    END AS flag
    FROM brands
    )
    SELECT brand
    FROM CTE
    GROUP BY brand
    HAVING SUM(Flag) = COUNT(brand)

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

      Won't this return a single record as opposed to 3 records for that particular brand. Also, it does recreate the original table as it still includes the flag column.

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

    You approach is great. But this answerhas one flaw. That is if one company is in the list and for only one year then the flag will return 1. As far as i can think it can be resolved by one more cte and counting the number of flags when flag=1. And with where clause when the count is 3.

  • @01kumarr
    @01kumarr Рік тому

    thankyou

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

    Sir please make more and more videos on complex and difficult SQL queries which are used in real world projects

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

    This was a fun one to do before and see how our solutions are different, awesome video!!

  • @vutv5742
    @vutv5742 6 місяців тому

    Completed ❤

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

    Hi, thanks u shared, please what program use for exec querys?

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

    Here is my approach
    ;with cte as
    (select Years,Brand,amount,
    ROW_NUMBER() over(partition by brand order by years) as rnk,
    DENSE_RANK() over(partition by brand order by amount) as drnk
    from Brands),
    cte2 As
    (select brand from cte where rnk

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

    Hi Thoufig, could you please make a video on Transaction Isolation Level.

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

    Superb explanation 👌 👏 👍

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

    Excellent

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

      Thank you very much 😊

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

    Great solution

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

    good learning from you

  • @vermaji5220
    @vermaji5220 6 місяців тому

    with cte as
    (select *
    , case when amount - lag(amount,1,0) over (partition by brand order by year) > 0 then 1 else 0 end as positive_flag
    from msales),
    cte1 as(
    select brand, count(brand) as no_of_year, sum(positive_flag) as positive_growth from cte
    group by brand)
    --select * from cte1
    select brand
    from cte1
    where no_of_year = positive_growth

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

    Hi @techTFQ , Is this correct , I have not used the amount + 1 condition
    ;with cte as (
    select
    case when Amount - lag([Amount],1,Amount) over (partition by Brand order by Year) >= 0 then 'Increased' else 'Decreased'
    end as Sales
    , * from brands
    )
    select * from brands where brand not in ( select brand from cte where Sales = 'Decreased' )

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

    cool buddy

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

    Thanks! My solution:
    WITH cte AS (
    SELECT *
    , CASE
    WHEN Sales > COALESCE(LAG(Sales) OVER(PARTITION BY Brand ORDER BY Year),0)
    THEN 1 ELSE 0 END AS is_increased
    FROM brands
    )
    SELECT Brand
    FROM cte
    GROUP BY 1
    HAVING SUM(is_increased) = COUNT(DISTINCT YEAR)

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

    awesome bro.

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

      Thank you! Cheers!

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

    Thank you toufiq

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

      Your welcome Salim

  • @AmitSingh-er3lk
    @AmitSingh-er3lk Рік тому

    Hi TFQ, I have one problem statement as need to find cosiquitive absent count for each student in attendance table...

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

    here is my approach, which gives the same answer
    with cte as (select e.*,lead(amount) over(partition by brand order by year) as second_year_amount from brands as e),
    cte2 as (select year, brand, amount as first_year_amount,second_year_amount,
    lead(second_year_amount) over(partition by brand order by year) as third_year_amount from cte)
    select* from cte2 where first_year_amount

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

    with cte as (
    select brand, (case when (amount>lag(amount,1,0) over(partition by brand order by year)) then 0 else -1 end) as flag from brands)
    select brand from cte group by brand having sum(flag) = 0

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

    with cte as(
    SELECT *,lead(amount) over(partition by brand) as new_amount FROM practice.phones),
    -cte1 as(
    select *, case when amount < new_amount or new_amount is null then 1 else 0 end as flag from cte),
    max_brand as
    (select brand,sum(flag) as flag1 from cte1
    group by 1),
    main_brand as(
    select brand from max_brand
    where flag1 = (select max(flag1) from max_brand))
    select cte1.year,cte1.brand,cte1.amount from cte1 left join main_brand mb on cte1.brand=mb.brand
    where mb.brand is not null

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

    Lovely

  • @dantushankar4470
    @dantushankar4470 25 днів тому

    My solution:
    with cte as
    (select *, Amount - lag(Amount,1,0) over (partition by brand order by year) as diff,
    row_number() over (partition by brand order by year) as rn from brands)
    select brand from cte where diff > 0
    group by brand
    having count(rn) = 3

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

    Hi TFQ, could you please create videos on Python Interview Questions for Data Analysts?

  • @rahulsharma-kq7oh
    @rahulsharma-kq7oh Рік тому

    Hi Taufiq, can you please make a video on dynamic SQL Queries.

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

    All the best bro👍

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

      Thank you so much 🙂

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

    Sir why can't we just add 1 instead of "amount+1" in the last argument in lead function?

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

    select brand, sum(case when rn = rnk then 1 else 0 end) as output_val from
    (select year,brand,amount,row_number() over(partition by brand order by year) as rn, rank() over(partition by brand order by amount) as rnk from brands)a
    group by brand

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

    select distinct Brand from Test t3
    except (
    select distinct Brand from Test t1
    where exists (select null
    from Test t2 where t1.Brand=t2.Brand and t1.Year=t2.Year+1 and t1.Amount>t2.Amount))

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

    How to write alternative for recursive cte when it's not supported in azure

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

    here is my solution.. but it's bit lengthier..
    with cte as (select *,lead(amount,1,0) over(partition by brand order by year), lead(amount,1,0) over(partition by brand order by year)-amount as diff
    from brands)
    ,diff_greater_than_zero as (
    select brand, count(*) cnt from cte
    where diff >0
    group by brand
    )
    ,total_count as (
    select brand, count(*)-1 cnt from cte
    group by brand
    )
    select cte.year,cte.brand,cte.amount from diff_greater_than_zero d join total_count t
    on t.brand=d.brand
    join cte on t.brand=cte.brand
    where d.cnt=t.cnt

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

    Thnx thoufiq ❤️

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

    If we have first to record ordered properly but last record else comparitively low then what do do

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

    awesome as usual

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

    with base as (select
    case
    when nth_value(Amount, 2) over(partition by Brand rows between current row and 1 following)>Amount then 1
    when nth_value(Amount, 2) over(partition by Brand rows between current row and 1 following) is null then 1
    else 0
    end as _lead,
    Brand,
    Amount from brands)
    select Brand from base group by Brand having sum(_lead) = count(*);

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

    And Do we have to learn an other things for that ??

  • @poisontech4075
    @poisontech4075 7 місяців тому

    with cte as(select year, brand, amount as now,
    coalesce(lead(amount) over(partition by brand order by brand),0) as previous
    from brands)
    select year, brand,
    case when previous > now then 'increased' else 'not' end as 'status'
    from cte;

  • @anchal7876
    @anchal7876 6 місяців тому

    with cte as (select brand,amount,coalesce(LEAD(amount) over(partition by brand order by brand),0) as aa from brands)
    select brand from cte where Amount

  • @vijay.s-ll1yq
    @vijay.s-ll1yq 3 місяці тому

    select * from product_assumption where brand in
    (select max(brand) from product_assumption )

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

    Sir, if we want to do it with sub query how it will be done?

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

    Q1. --write a query to fetch the record of brand whose amount is increasing every year
    with cte as
    (
    select *,lag(amount) over(partition by brand order by year) as prev from Brands
    )
    select Brand from cte
    GROUP BY Brand
    having SUM(case when (Amount-prev)

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

    Another very intuitive logic could be
    "For growing brand (Year Order = Amount Order)",
    Here is the answer using the same logic:
    ----------------------------------------------------------------
    WITH cte AS(
    SELECT *,
    DENSE_RANK() OVER (PARTITION BY brand ORDER BY year)-
    DENSE_RANK() OVER (PARTITION BY brand ORDER BY amount) AS diff
    FROM brands
    )
    SELECT *
    FROM brands
    WHERE brand NOT IN (SELECT brand FROM cte WHERE diff 0);
    ----------------------------------------------------------------

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

    select * from brd where brand not in (select distinct brand from (
    select years,brand,amount,amount-lag(amount,1,0) over (partition by brand order by years,amount) as check_sum from brd ) a
    where a.check_sum < 0)

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

    what happens if the last record of samsung's amount was 18000, making flag as 1 for the last record gives wrong result?

  • @niroshanune3386
    @niroshanune3386 3 місяці тому

    Sir ,how do we do certification in SQL ?

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

    Sir can we become Sal developer only by basic knowledge of SQL as a junior ??

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

    any idea how will we write it with a sub query as my query below returns samsung but records from apple and nokia whose flag is 1
    select * from
    (select *,
    (case when amount < lead(amount,1,amount+1) over(partition by brand order by years) then 1 else 0 end) as flag
    from product) as temp
    where temp.flag !=0
    ;

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

    Please paste the table created and inserted script also so that we can try individually

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

    Alternate solution using where not exists:
    select * from dataset
    with cte as (
    select *, (amount-ifnull(lag(amount) over(partition by brand order by year),amount)) as yearly_growth
    from dataset)
    select distinct brand from cte as c1 where not exists (select 1 from cte as c2
    where c1.brand=c2.brand and c2.yearly_growth

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

    Hey techtfq, Can I just use row number function like partition by brand order by year ascending and in where clause I put rn3>rn2 and rn2>rn1.

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

      i was thinking along the same lines.. it seems simple to make a rank colum for both year and the amount.. selct * where rank_year = rank_amount

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

    Lead(Amount) by partition of company, taking the difference between this and previous, checking for postive difference, correct me if I m wrong

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

    select Brand from
    (
    select *,
    row_number() over(partition by Brand order by year) - row_number() over(partition by Brand order by amount) as diff
    from brands) a
    group by Brand having max(diff)=0 and min(diff)=0

  • @user-um8rt4vv7b
    @user-um8rt4vv7b Рік тому

    Thanks for this very helpful video. I want to ask something about the last records of each brand. Let's take the last value of amount for Samsung is 19000. In this case the assumption of 1 for the last record for flag will not be correct. Is it true or is there anything that I misunderstood?

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

      It will be always be correct because amount+1 will always be superior to amount

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

    Good morning sir , oracle 19 c installation cls video cheyandi sir

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

    instead of doing with cte can't we just load the above table in a temporary table and select * on that temp table and writer the where clause in that query? wouldn't that be a bit more easy?

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

      I think that is a valid approach but not sure how it would be any easier than using a CTE.

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

    Converting rows into columns in db2 sql
    I have table subs_details sample data and columns like:
    ID,Number
    1,4579,
    2,678
    3,667
    2,827
    3,803
    1,5479
    3,5779
    I want to convert it into below output:
    ID1,id1_number,id2,id2_numberi id3, id3_number
    1,4579,2,5678,3,6678
    1,479,2,780,3,35779
    Please help in this

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

    select *
    , (case when amount < lead(amount, 1, amount+1)
    over(partition by brand order by year)
    then 1
    else 0
    end) as flag
    from brands
    This query does not run in mysql. Throwing syntax error. Please suggest a solution.

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

    Hey toufiq , could u please clarify
    If we could just say , in the inner query -
    Case when lead (amount ) ..... Is greater thn amount then 'yes'
    And and lead ( amount , 2 ) ..... Is greater than lead (amount ,1) .....over .. then 'yes '
    This way , we could create a flag col with three consecutive ' yes' or 1 when the value is increasing !
    And then plz suggest an outer query to fetch the samsung records if this is correct

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

      I think ur solution works well for only first row of sumsung brand..... When compiler goes to second row of brand samsung it will return false due And operation, isn't it??... If the question was like return the brand (single rowed output) with yearly increasing amount would have suited to your solution.. What do you say??... Am i wrong?

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

      What if we have 20 rows for same brand

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

    Hi, are you planning to start live SQL training session again'. ?

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

      I will but not anytime soon