Database Research & Development

  • Home
  • NoSQL
    • NoSQL
    • Cassandra
  • Databases
    • Database Theory
    • Database Designing
    • SQL Server Coding Standards
    • SQL Server
    • PostgreSQL
    • MySQL
    • Greenplum
    • Linux
  • Interviews
    • SQL Server Interviews
    • MySQL Interviews
    • SQL Puzzles
  • DBA Scripts
    • SQL Server DBA Scripts
    • PostgreSQL DBA Scripts
    • MySQL DBA Scripts
    • Greenplum DBA Scripts
  • Home
  • Blog Archives !
  • (: Laugh@dbrnd :)
  • Contact Me !
sqlserverinterviews
Home 2017 October SQL Puzzle: SQL Advance Query – Use STUFF() and form the aggregate of columns

SQL Puzzle: SQL Advance Query – Use STUFF() and form the aggregate of columns

This article is half-done without your Comment! *** Please share your thoughts via Comment ***

Check the below input data and expected output to merge the driven car’s data like which car has driven by which drivers and form the aggregate the result for the same car.

Input Data:

1
2
3
4
5
6
7
8
CarName Rout Driver Year
---------- -------------------- ---------- -----------
Mobilio hyd - ahd Anvesh 2017
HCity ahd - raj Mukesh 2016
Mobilio kadi - abu Mukesh 2016
Duster mha - dlh Nupur 2017
Duster hyd - ahd Anvesh 2016
Duster bha - ahd Manish 2015

Expected Output:

1
2
3
4
5
CarName DrivenDetails
---------- ------------------------------------------------------------------------------------------------------
Duster Rout:mha - dlh, driven by Nupur in Year 2017, Rout:hyd - ahd, driven by Anvesh in Year 2016, Rout:bha - ahd, driven by Manish in Year 2015
HCity Rout:ahd - raj, driven by Mukesh in Year 2016
Mobilio Rout:hyd - ahd, driven by Anvesh in Year 2017, Rout:kadi - abu, driven by Mukesh in Year 2016

Create a table with sample data:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE TABLE Cars
(
CarName VARCHAR(10)
,Rout VARCHAR(20)
,Driver VARCHAR(10)
,Year INT
)
GO
INSERT INTO Cars VALUES
('Mobilio','hyd - ahd', 'Anvesh',2017)
,('HCity','ahd - raj', 'Mukesh',2016)
,('Mobilio','kadi - abu', 'Mukesh',2016)
,('Duster','mha - dlh', 'Nupur',2017)
,('Duster','hyd - ahd', 'Anvesh',2016)
,('Duster','bha - ahd', 'Manish',2015)
GO

Solution:

1
2
3
4
5
6
7
8
9
10
11
SELECT b.CarName
,STUFF
((
SELECT ', Rout:' + Rout + ', driven by ' + CAST(Driver AS VARCHAR(MAX)) + ' in Year ' + CAST(Year AS VARCHAR(MAX))
FROM Cars a
WHERE ( a.CarName = b.CarName )
FOR XML PATH('')
) ,1,2,'')
AS DrivenDetails
FROM Cars b
GROUP BY b.CarName

Please try the different solutions for this puzzle and share it via comment...

Oct 20, 2017Anvesh Patel
SQL Puzzle: SQL Advance Query - Group and Count of Consecutive flagsSQL Puzzle: SQL Advance Query - Split the String and generate count of Each part
Comments: 1
  1. Dinesh.IS
    October 24, 2017 at 4:05 am

    ;
    WITH CTE
    As
    (Select Distinct CarName
    From Cars)
    Select CarName,STUFF((Select ‘,’+’ Rout: ‘+Rout+ ‘,Driven By ‘+Cast(Driver As VarChar(Max))+ ‘ In Year ‘+Convert(VarChar(Max),Year)
    From Cars A Where A.CarName=B.CarName For XML PATH(”)),1,2,”) As DrivenDetails
    From CTE B

Anvesh Patel

Database Engineer

October 20, 2017 SQL Puzzleaggregate, Anvesh Patel, database, database research and development, dbrnd, SQL Advance Query, SQL Interview, SQL Problem, SQL Programming, SQL Puzzle, SQL Query, SQL Tips and Tricks, stuff
About Me!

I'm Anvesh Patel, a Database Engineer certified by Oracle and IBM. I'm working as a Database Architect, Database Optimizer, Database Administrator, Database Developer. Providing the best articles and solutions for different problems in the best manner through my blogs is my passion. I have more than six years of experience with various RDBMS products like MSSQL Server, PostgreSQL, MySQL, Greenplum and currently learning and doing research on BIGData and NoSQL technology. -- Hyderabad, India.

About DBRND !

dbrnd

This is a personal blog (www.dbrnd.com).

Any views or opinions represented in this blog are personal and belong solely to the blog owner and do not represent those of people, institutions or organizations that the owner may or may not be associated with in professional or personal capacity, unless explicitly stated.

Feel free to challenge me, disagree with me, or tell me I’m completely nuts in the comments section of each blog entry, but I reserve the right to delete any comment for any reason whatsoever (abusive, profane, rude, or anonymous comments) - so keep it polite.

The content of this website is protected by copyright. No portion of this website may be copied or replicated in any form without the written consent of the website owner.

Recent Comments !
  • Anvesh Patel { Sure will do... } – May 27, 12:43 PM
  • Anvesh Patel { Great... } – May 27, 12:41 PM
  • Anvesh Patel { Great... } – May 27, 12:39 PM
  • Anvesh Patel { Great... } – May 27, 12:36 PM
  • Anvesh Patel { Great... } – May 27, 12:28 PM
  • Anvesh Patel { Great... } – May 27, 12:27 PM
  • Anvesh Patel { Great... } – May 27, 12:16 PM
  • Older »
Follow Me !
  • facebook
  • linkedin
  • twitter
  • youtube
  • google
  • flickr
© 2015 – 2019 All rights reserved. Database Research & Development (dbrnd.com)
Posting....