КОМЕНТАРІ •

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

    I just learned JOIN today in SQL and this was a great lesson to add to my earlier lesson. I also liked the addition of the ID column. Thank you!

  • @user-we3cu9sy8i
    @user-we3cu9sy8i 6 місяців тому +5

    I think the below one also works.
    with cte as
    (select *,
    row_number() over(partition by buckets) as rn
    from(
    select *,
    ntile(3) over(partition by distance) as buckets
    from src_dest_distance))
    select source,destination,distance
    from cte
    where rn

    • @kartikeytyagi9119
      @kartikeytyagi9119 5 місяців тому +1

      But why we use bucket in this?

    • @user-we3cu9sy8i
      @user-we3cu9sy8i 5 місяців тому

      @@kartikeytyagi9119 in the given query two state names are repeated vice versa and i need to fetch the row which was inserted first. if i create buckets, i can get three buckets for three pairs of states, each bucket will have two rows with vice versa state names and if i apply row number for each bucket, i can be able to get first inserted rows(by using rn

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

    So clear ! Thank you Thoufiq. Keep it coming man. More to watch and learn.

  • @Anonymous-le2zr
    @Anonymous-le2zr Рік тому +48

    I think we can simply write the query using least , Greatest funtions (in Oracle Database)
    SELECT DISTINCT
    least(SOURCE, DESTINATION) SOURCE,
    greatest(SOURCE, DESTINATION) DESTINATION,

    DISTANCE
    FROM table1;
    It will give the desired results

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

      Thanks for sharing these functions. I'm trying to think through the logic of the code to see what the output would be. I'm not sure but it looks like your code will perform 6 sets of comparisons returning 6 rows of data. How do you reduce it down to the 3 rows desired?

    • @Anonymous-le2zr
      @Anonymous-le2zr Рік тому +4

      @@olu0mg
      Least function will always select the first word based on alphabetical order
      You may watch some videos on these functions, it is quite easy.
      And As we are using 'Distinct' in the query above, it will remove the duplicate records and return only 3 rows

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

      @@Anonymous-le2zr Thank you! Somehow missed DISTINCT when I first read your post.

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

      desired output is hyd, delhi, pune in destination column
      above query gives hyd, mumbai, Pune as output

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

      That was also the first thing that I taught about

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

    Thanks Taufiq, I think visualization of output is necessary in such scenarios

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

    Best of the Best Techtfq, Awesome delivery consistency. great job ciao

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

    Explanation in Excel did the whole trick with focus on ID column, thanks a lot sir

  • @George-iz2ce
    @George-iz2ce Рік тому +5

    A self anti semi join sounds easier to me:
    select *
    from src_dest_distance a
    where not exists
    (select 1 from src_dest_distance a where a.source=b.destination and a.destination=b.source and b.source

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

    I really enjoyed how you explain the win func and make easy for us to understand
    Great work and delivery 🎉❤

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

    Very clean and crisp explanation..Thanks Taufiq

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

    thanks for your efforts Toufiq! Jazakallohu hairon.

  • @MaVinkal
    @MaVinkal Рік тому +11

    I guess this can be also one more approach with greatest and least function:
    select distinct greatest(source, destination) as source, least(source, destination) as destination, distance from src_dest_distance;

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

      Appreciate it. Could you tell me, is it MySQL or SQL server or others ? Thank you

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

      PostgreSQL

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

      Thank you for this alternative. I was thinking about something similar. This approach to me is more clever and avoids using the row number, which I feel is a bit hacky (even if it works)

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

    It's great to see tutorials like this posted. However, it should be noted that the solution presented only works for a very specific dataset. Two potential failure cases come to mind:
    1) Adding the city pair Bangalore Chennai will fail. As others have noted, the fix for this is to make the where clause check both T1.Source = T2.Dest and T1.Dest = T2.Source
    2) It assumes that every city pair shows in both orders. If a city pair is only listed in one direction, it won't match on the self join.
    Others have mentioned using least() and greatest(). Not just an alternative, but using such functions solves both of the problems noted above:
    SELECT DISTINCT GREATEST(source, destination) AS source, LEAST(source, destination) AS destination, distance FROM cities;
    Note: tested with MariaDB, other engines may vary.

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

      This also works well with SQL server and Databricks SQL

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

      Second theamigo42. This query will not work in those 2 scenarios

  • @shashishekhar----
    @shashishekhar---- Рік тому +10

    This has to be one of the best IT channels out there.

  • @sub-harmonik
    @sub-harmonik Рік тому +3

    For this data set it's fine but it would be cool to incorporate the possibility of the same city showing up in a different pair.
    I guess you could just also add the condition that t2.source = t1.destination

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

    I wouldn't have done it like that but it is a quite neat solution. Thanks.

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

    My senior @jinal used to explain the data in the same way how you do here...loved your presentation.

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

    Thank you TFQ....
    This question is asked by me.
    Thank you for your reply 🙏 it helps a lot to others as well.

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

    Very Nice explanation 👌 thank you 😊

  • @siddarthkollipara5266
    @siddarthkollipara5266 Рік тому +22

    Actually @techTFQ it would be better if you add t1.dest = t2.source bcz in the sample data we don't have repetition of source but that is mostly possible to uniquely identify we could add this condition

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

      Also creation of ID is not necessary as text can also be compared directly, here source or destination

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

      @@yaminurrahmantopiwala6207 it is required, query isn’t giving required output without id column instead it’s giving whole data

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

      @@aakriti_100 I still disagree. You share your sample data and I will give you perfect query without redundancies

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

    You are a true gem for data community ❤️

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

    you have one of the best channels for practicing SQL queries...great going

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

    Nice explanation Taufiq 👌 👍 👏

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

    well laid out..thanks

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

    thank you bro.........can you do more videos on interview point of view

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

    Nice Presentation.. Keep it up..

  • @AtulSingh-be1jk
    @AtulSingh-be1jk Рік тому

    Hi sir,
    Can you please make a video on how to update data of one table from another table using the merge concept.
    It will be very helpful for me.

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

    Looking at the output, it is a alternative row of the input table. In this instance, I believe we can divide the row number by 2. Where ever the value is not equal to zero, the result is the output table.
    Select *
    From (Select *, row_number() over () as row
    from input_table) t1
    where row % 2 0

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

    approach for specific dataset
    select * from src_dest_distance
    where source

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

    we can solve it through not exists operator also right.
    with cte as
    (select *, row_number() over as id from src_dest_distance)
    select * from cte AS t1 where not exists (select * from cte AS t2 where t1.source = t2.destination and t1.destination = t2.source and t1.id>t2.id);

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

    Thanks bro

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

    great explanation ..
    We can also run a simple query
    select * from src_dest_distance
    where source > destination

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

      I would prefer source < destination, that way the source comes first alphabetically.
      But neither will return the desired data, where it seems to want to use the first trip in the table.

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

    Great solution, if the source and destination are not strict, we can do simple trick-
    select * from src_dest_distance where source

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

      U can't use comparison operator in character column

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

      @@madavsaravanan8844 why?

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

      @@protapnandi9729 beacuse
      How can you compare
      Two names

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

      @@jacksparrow3595 You can certainly compare strings in SQL. Protap’s suggestion is the best solution to the stated problem. It’s extremely simple, gives correct results, and even has the benefit that the selected rows will always have the two endpoints in alphabetical order, which, if the actual source were quite long, would make the output easier to use.

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

    Hey
    My solution for the same is
    ;with cte as (
    select *,
    case when source destination then source else destination end as destination1
    from src_dest_distance)
    select source1,destination1,max(distance)
    from cte
    group by source1,destination1

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

      Instead of the group, DISTINCT can be used too.

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

    We can also use lead function in Table and then comparing in with the 1st Column. That will result the Unique output.

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

    Could you not in this case also do a bitwise OR of the two fields and select distinct?

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

    select * from src_dest_distance where source < destination;

  • @KisaanTuber
    @KisaanTuber Рік тому +18

    Again an awesome video with great explanation. Just one suggestion to the join condition. Should we include T1.source = T2.destination and T1.destination = T2.source and T.id < T2.id so that we match only the required rows. The condition T1.source = T2.destination and T.id < T2.id may join non required rows as well which is not present in your data example. Like Bangalore -> Hyderabad and Chennai -> Bangalore. Let me know your thoughts. Thanks

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

      Yes you need that condition T1.destination=t2.source and also you can replace t1.id

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

      @@mudassirasaipillai6584 it is not working

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

      agree, the best answer sees beyond the data given to the broader nature of the data and request, and provides a solution that also is robust for handling future edge cases. This is "find all the unique trips" not just "return these 3 specific rows"...
      I'd add on that doing an inner join is less ideal for this same reason. It assumes that a "return trip" record will always be present to pair against.
      Instead, using a left join with the filter condition placed in the WHERE clause (WHERE T2.id is null) would better handle the potential situation of an unpaired entry down the road. Retain a record when no "return trip" match is found is more robust, assuming that "find all the unique trips" is the mission.

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

      ​@@mudassirasaipillai6584 That does not avoid duplicates. That will gives the same duplicate values.
      For any city pair, you will have 2 rows, they will have ids of id1 and id2 which will be different, so one will be larger than the other; and they will have a different source.
      Then for the join in one case you will have T1.id < T2.id, and in the other case you have T1.id > T2.id.
      By having one of those as the condition you will only get one of the pair.
      But having t1.source t2.source, the condition will be true in both cases and both directions of the journey will be returned.

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

    Does this query work if we later, add another row with source Bangalore but a different destination? We are only checking that Bangalore is present in both columns, but not that they have the same corresponding source.

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

    You're assuming you're getting sorted pairs, can you do it with unsorted source and no ID?

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

    Amazing 👏 keep it up 😇😇

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

    Hi Toufik,
    Can you make a video on "case-insensitive pattern matching in PostgreSQL". I recently faced this issue when using wildcard, unlike mySQL Postgre isn't case-insensitive.
    Thanks for the resources & study and practice materials you provide, they are very helpful.

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

      in postgres, you can use 'ilike' for a case-insentive version of 'like'

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

    Helpful.

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

    Fabulous

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

    What if you have two paths to the same destination from 1 city?
    Here is my alternate solution: use append to combine start and destination cities, then use append to combine destination and start cities. Now you have a pair of "unique" (for a given pair of cities) identifiers. Using the same self join and row number, check if start-destination in destination-start before current row.

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

    We can concatenate both the columns and on that column we can get the duplicates rt?

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

    This might sound daft, but given the problem/solution set out at 2:20 why not just SELECT * FROM INPUT WHERE SOURCE IN ('Bangalore','Mumbai','Chennai');

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

    This is what I came up with before I watched your solution:
    select src, dest, dist
    from cities c1
    where (
    select count(*)
    from cities c2
    where c2.src = c1.dest
    and c2.src < c1.src) = 0;

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

    This is an easier solution @techTFQ
    with cte as (select *, lead(destination,1,destination) over() as sc1 from src_dest_distance)
    select source, destination, distance from cte where source = sc1;

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

    Why not filter the original input for SOURCE < DESTINATION? That would eliminate one of the 2 records, and would be much more efficient than a self join...

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

      yep, although it wouldn't change the results, just make sure to use lower function on both sorce and destination to avoid headaches down the line when someone introduces "delhi" and someone's script breaks and nobody knows why

  • @Entertainment-nk8to
    @Entertainment-nk8to 19 днів тому

    I think wasy way to remove the duplicate records in the table is to use the union set operator.

  • @naveen0846
    @naveen0846 2 місяці тому +1

    Can't we write source> destination instead of complex join,row_ num

  • @HarshGupta-hh6kc
    @HarshGupta-hh6kc Рік тому +1

    Hi I think this can be done by using row number function and selecting the odd rows will give the desired output?

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

      I think this will only solve this particular data.

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

    This would do the job
    SELECT DISTINCT IIF(source > destination, source, destination) AS source, IIF(source < destination, source, destination) AS destination, distance
    FROM src_dest_distance

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

    with cte as (
    select (case when sourcedestination then source else destination end) as destination,distance
    from src_dest_distance ) ,
    cte2 as (
    select source,destination,distance, row_number()
    over(partition by source order by distance) as rnk from cte )

    select * from cte2
    where rnk = 1

  • @user-qg1gi4ny8j
    @user-qg1gi4ny8j 2 місяці тому

    I think we simply do like below.
    Select * from tablename
    Where source > destination

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

    I tried to run it on Oracle SQL Developer, and I got an error : "FROM keyword not found where expected" ? I also run it at Google's BigQuery, the result is "there is no data to display". Can anyone help me with that? Thanks!

  • @PoojaYadav-jx9sl
    @PoojaYadav-jx9sl Рік тому

    Can we represent or operator with || in SQL

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

    Sir i hv one question. Syntax kaise likhe ..i mean basics may kuch sikhate hay or yaha pe or kuch likhte hay

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

    hi everything is excellent, but you mentioned the concept used in the title, so anyone who saw this video didn't get the opportunity to think on their own coz as the concept used is already mentioned, but you are doing a great job, to data community

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

      very valid point. Hence I have just renamed the title to remove it so it help the future viewers.

  • @user-tx3mo1ez2n
    @user-tx3mo1ez2n Рік тому +2

    What if we just take the odd rows.
    Select * from (Select *,row_number() over() as id from table) where (id&1)=1;

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

      I would not hire you if you gave that answer. It solves the problem one time only, based on assumption about the input data. What if the order of input rows was randomized?

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

    select s.source,s.destination,s.distance from src_dest_distance as s
    join
    src_dest_distance as s1
    on s.source=s1.source and ascii(s1.source)>ascii(s.destination)

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

    Suppose there are another data also bangalore to mumbai and mumbai to bangalore. Then how join will be helofull because bangalore will be maped with two data.

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

    Why can't we go for inner join

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

    please share another way of doing that?

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

    select distinct greatest(source,destination),least(source,destination),distance from src_dest_distance

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

    IT IS NOT WORKING IN ORACLE WITH OUT OVER() CLAUSE

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

    Hi, could please give solution for SQL server as well..
    getting issue -
    The function 'row_number' must have an OVER clause with ORDER BY.
    Also dont think this solution will work for all type of combo as below -
    can please check once?
    insert into src_dest_distance values ('Bangalore', 'Hyderbad', 400);
    insert into src_dest_distance values ('Hyderbad', 'Bangalore', 400);
    insert into src_dest_distance values ('Bangalore', 'Kolkata', 500);
    insert into src_dest_distance values ('Kolkata', 'Bangalore', 500);
    insert into src_dest_distance values ('Mumbai', 'Delhi', 400);
    insert into src_dest_distance values ('Kasmir', 'Mumbai', 1000);
    insert into src_dest_distance values ('Delhi', 'Mumbai', 400);
    insert into src_dest_distance values ('Mumbai', 'Kasmir', 1000);
    insert into src_dest_distance values ('Chennai', 'Pune', 400);
    insert into src_dest_distance values ('Chennai', 'HYD', 100);
    insert into src_dest_distance values ('Pune', 'Chennai', 400);
    insert into src_dest_distance values ('HYD', 'Chennai', 100);

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

    I think my solution is much simpler and therefore more understandable:
    select source c1, dest c2, dist from input where sourcedest

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

    Another Simpler way to solve this :
    with xyz as (
    select * , lead(destination) over() as LD
    from src_dest_distance )
    Select source , destination , distance from xyz where source = LD ;

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

    Hi,
    My approach to this Question
    With cte as
    (Select *,ROW_NUMBER() over (order by Distance) as RN from Distance)
    Select Source,Destination,Distance from cte where RN %2 =1
    I got it output....but is the approach right??

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

      But it won't match if the input table is scrambled. Like delhi to mumbai is not just below mumbai to delhi

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

    Hi sir,
    I am trying to solve in sql server but its getting following error. Then which col should i consider for order by clause
    Msg 4112, Level 15, State 1, Line 147, The function 'row_number' must have an OVER clause with ORDER BY.

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

      You can order by any column, the solution would still work

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

      @@techTFQ Thankyou sir🙏

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

      I also got the error even though after i gave order by clause i am still facing that error.

  • @user-yp5tj2ce3s
    @user-yp5tj2ce3s 3 місяці тому

    select distinct s,d,distance from
    (select *, case when source >destination then source else destination end s,
    case when source < destination then source else destination end d
    from src_dest_distance)x

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

    one doubt. what happens if data is not on this order

  • @raushansingh7530
    @raushansingh7530 7 днів тому

    with cte as (
    select * , lead(destination) over(order by distance) as Lead_dest
    from src_dest_distance )
    Select source , destination , distance from cte where source = Lead_dest ;

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

    We can solve it by where function too and much more easier and faster

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

    Sir please make video on datetime datename stuff and ltrim functions

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

      Do you have a specific question? Perhaps I can help.

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

    Easier:
    select
    source as destination,
    destination as source,
    distance
    from input
    union
    select
    destination,
    source,
    distance
    from input
    Explanation: union will automatically remove duplicate rows ;)

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

    Hi sir I know SAS, sql, python, vba, excel guide to get online work I'm unemployeee since a decade

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

    Take a shot every time he says OK, challenge.

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

    I'm trying same but it's shows error

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

    with cte as(
    Select *,row_number() over(order by distance ) as rn
    from src_dest_distance),
    cte2 as (Select *,row_number() over(order by distance ) as rn
    from src_dest_distance)
    select c1.source,c1.destination,c1.distance,c1.rn
    from cte c1,cte2 c2
    where c1.rn

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

    Select hash(destination) + hash(source) unique, first(destination), first(source), max(distance)
    From table
    Group by hash(destination) + hash(source);

  • @DhirajMarathe-kb8wi
    @DhirajMarathe-kb8wi 4 місяці тому

    is below query work ?
    select * from src_dest_distance
    where source > destination

  • @vishalsonawane.8905
    @vishalsonawane.8905 6 місяців тому

    Done

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

    Table name assumed - Location
    WITH cte as
    (SELECT * , LAG(Source,1,0) OVER() as comp
    FROM Location)
    SELECT Source,Destination,Distance
    FROM cte
    WHERE Source NOT IN (SELECT Source
    FROM Location
    WHERE Destination=comp)

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

    There is duplicate name scott 3 time, smith 2 time so.... On.... i want to update like scott1, scott2, scott3, smith1, smith2 so on..... How to update in table without copy with other table

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

    You should use a union which automatically removes duplicates, just inverse the destination and source while unioning. Far lighter, easier above all much much faster.
    I love the way bring content and training to the people but I noticed you are really record focused, try to solve issues in sets of data this will eliminate a lot of headache with growing data.

  • @HARSHRAJ-wz2rp
    @HARSHRAJ-wz2rp 6 днів тому

    with cte as(
    select src_dest_distance.*,ROW_NUMBER()OVER() as "x" FROM src_dest_distance
    )
    select source,destination,distance from cte where x%2!=0;

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

    Select source , destination, distance from table
    Union
    Select destination as souce, source as destination, distance from table
    ? Is it possible ?

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

    OK

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

    with cte as(
    select source,destination,distance,row_number() over(order by distance) as row from src_dest_distance)
    select source,destination,distance from cte where row in (1,3,5)
    This Query also gave the same result. Is that correct?

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

      No, as in the example the distances are all the same, the order is more or less random. With real distances it would be still a problem, because it is possible that two different pairs of cities have the same distance.

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

    Taufiq, what if the entry is like:
    bangalore hyderabad 400
    delhi bangalore 1200
    will this condition not treat these as duplicate records ?
    Can we use the condition: T1.source=T2.destination and T1.destination=T2.source ?

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

    select source,destination,distance From (select *,
    LEAD(Source,1,Source) OVER() as Source1,
    LEAD(Destination,1,Destination) OVER() as Destination1
    FROM src_dest_distance) as a
    WHERE source=destination1 AND destination=source1;
    Is that correct please check?

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

    Upload oracle19c software installation video sir.plz

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

    if you can use row numbering and sub-clauses, just do:
    select *
    from
    ( select *, row_number() as rid
    from table)
    where modulo(rid,2) = 0
    And if modulo not allowed just do a diff even check, as wonky as:
    round(rid/2) = rid/2

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

    Solution is written in the video header. This spoils the opportunity of trying to solve the question.

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

      got it. Hence I have just renamed the title to remove it so it help the future viewers.

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

    Write a sql query on input table is like Item, no_items Apple, 8 Potato, 4 Banana,6 Tomato,2 And Output table should be like Item, sum_item Vegitables, 8 Fruits, 14

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

    Problem with MS Sql is it wont let you create row_number() without putting an order by in the over() clause. I solved like this:
    with CTE as
    (
    select t.*, row_number() over( partition by distance order by distance) as [id]
    from travel_routes t
    )
    select source, destination, distance from CTE where id=1
    May be the CTE is overkill, but for someone who might find this useful.

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

      if distance is same for all records then this will not work

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

    Thank you for the Video. This SQL only works if there are always two sets of records (A->B, B->A). If there is only a single source - destination pair (S->D) it will not be part of the result.