Advertisements

SQL Puzzle | Read DATA from XML – 1

Tags

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,


SQL Puzzle | Read DATA from XML – 1

In this puzzle you have to read XML using T-SQL

Please check the sample input and the expected output.

Sample Input


<Items>
  <Item>
    <Id>1</Id>
    <Name>Pawan</Name>
    <Date>2018/01/01</Date>
  </Item>
  <Item>
    <Id>2</Id>
    <Name>Avtaar</Name>
    <Date>2018/01/11</Date>
  </Item>
  <Item>
    <Id>3</Id>
    <Name>Kishan</Name>
    <Date>2018/01/20</Date>
  </Item>
</Items>

Expected Output

Id Name Dt
3 Kishan 2018/01/20

Use below script to create table and insert sample data into it.

--

DECLARE @XML AS XML = '
<Items>
    <Item>        
        <Id>1</Id>
        <Name>Pawan</Name>        
        <Date>2018/01/01</Date>
    </Item>
    <Item>        
        <Id>2</Id>
        <Name>Avtaar</Name>        
        <Date>2018/01/11</Date>
    </Item>
    <Item>        
        <Id>3</Id>
        <Name>Kishan</Name>        
        <Date>2018/01/20</Date>
    </Item>
</Items>'

--

Rules/Restrictions

The solution should be should use “SELECT” statement or “CTE”.

Add your solution(s) in the comments section or send you solution(s) to pawankkmr@gmail.com

SOLUTION – 1

--


DECLARE @XML AS XML = '
<Items>
    <Item>        
        <Id>1</Id>
        <Name>Pawan</Name>        
        <Date>2018/01/01</Date>
    </Item>
    <Item>        
        <Id>2</Id>
        <Name>Avtaar</Name>        
        <Date>2018/01/11</Date>
    </Item>
    <Item>        
        <Id>3</Id>
        <Name>Kishan</Name>        
        <Date>2018/01/20</Date>
    </Item>
</Items>'

DECLARE @m TABLE  (Xmls XML)
INSERT INTO @m SELECT @XML 
;WITH CTE AS
(
    SELECT p.value(N'(Id/text())[1]',N'nvarchar(10)') AS [Id]
          ,p.value(N'(Name/text())[1]',N'nvarchar(20)') AS [Name]
          ,p.value(N'(Date/text())[1]',N'nvarchar(20)') AS [Dt]          
    FROM @m as x
    OUTER APPLY x.Xmls.nodes(N'/Items/Item') AS u(p)
)
SELECT TOP 1 * 
FROM CTE
ORDER BY Dt DESC

--

Output-1

--                            


Id         Name                 Dt
---------- -------------------- --------------------
3          Kishan               2018/01/20

(1 row affected)


--

Related XML Puzzles

1 https://msbiskills.com/2018/02/20/sql-puzzle-handling-special-characters-with-for-xml-path-puzzle/
2 https://msbiskills.com/2018/02/18/sql-puzzle-get-latest-record-from-xml/
3 https://msbiskills.com/2018/01/19/sql-puzzle-split-string-via-on-dot-using-xml/
4 https://msbiskills.com/2017/12/15/sql-puzzle-generate-xml-puzzle/
5 https://msbiskills.com/2017/10/27/sql-puzzle-the-xml-node-copy-puzzle/
6 https://msbiskills.com/2017/10/18/sql-puzzle-the-xml-explicit-puzzle/
7 https://msbiskills.com/2016/11/28/sql-puzzle-the-xml-path-puzzle/
8 https://pawankkmr.wordpress.com/2015/03/25/t-sql-query-group-by-xml-path-puzzle/
9 https://pawankkmr.wordpress.com/2015/03/25/t-sql-query-covert-comma-separated-values-to-a-table-using-cross-apply-xml-puzzle/

Add a comment if you have any other or better solution in mind. I would love to learn it. We all need to learn.

Pawan Khowal

Pawan is a SQL Server Developer. If you need any help in writing code/puzzle or training please email at – pawankkmr”AT”gmail.com. Meanwhile please go throgh the top pages from his blog.

Page Detail URL
☛ SQL Advance Puzzles https://msbiskills.com/tsql-puzzles-asked-in-interview-over-the-years/
☛ SQL Tricky Queries https://msbiskills.com/sql-puzzles-finding-outputs/
☛ SQL Server Perfomance tuning Articles https://msbiskills.com/sql-performance-tuning/
☛ SQL Server Articles https://msbiskills.com/t-sql/
☛ SQL Interview Questions & Answers https://msbiskills.com/sql-server-interview-questions/

My SQL Groups on Facebook:

1. If you like this post, you may want to join my SQL SERVER Interview Puzzles/Interview Questions on Facebook: https://www.facebook.com/groups/1430882120556342/

2. If you like this post, you may want to join my SQL Server Puzzles on Facebook:
https://www.facebook.com/groups/206594023090781/

My SQL Page on Facebook:

2. For all the updates you may follow my page -> https://www.facebook.com/MSBISkillscom-1602779883299222/

Enjoy !!! Keep Learning

Http://MsbiSkills.com

Advertisements

SQL Puzzle | The TWIN MAX Puzzle | SQL Interview Question – Can you provide a better solution?

Tags

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,


SQL Puzzle | The TWIN MAX Puzzle | SQL Interview Question

In this puzzle you have to find records where you have maximum salary and maximum experience. Both the condition should be met to fetch the rows.

Please check the sample input and the expected output.

Sample Input

EmpId Nm Salary Experience
1 Pawan 5000 11
2 Avtaar 1000 10
3 Kishan 5000 9
4 Ishu 1000 7
5 Nika 4500 11
6 Vaibhav 5000 5

Expected Output

EmpId Nm Experience Salary
1 Pawan 11 5000

Use below script to create table and insert sample data into it.

--

CREATE TABLE TheMaximumsPuzzle
(
	 EmpId INT
	,Nm VARCHAR(10)
	,Salary INT
	,Experience INT
)
GO

INSERT INTO TheMaximumsPuzzle VALUES
(1,'Pawan',5000,11),
(2,'Avtaar',1000,10),
(3,'Kishan',5000,9),
(4,'Ishu',1000,7),
(5,'Nika',4500,11),
(6,'Vaibhav',5000,5)
GO

SELECT * FROM TheMaximumsPuzzle
GO

--

Rules/Restrictions

The solution should be should use “SELECT” statement or “CTE”.

Add your solution(s) in the comments section or send you solution(s) to pawankkmr@gmail.com

1 SOLUTION

SOLUTION – 1

--

SELECT k.EmpId,k.Nm,k.Experience,k.Salary
FROM
(
	SELECT * , MAX(experience) OVER() a , MAX(Salary) OVER() b
	FROM TheMaximumsPuzzle
)k WHERE Salary = b AND Experience = a


--

Output-1

--                            

EmpId       Nm         Experience  Salary
----------- ---------- ----------- -----------
1           Pawan      11          5000

(1 row affected)

--

SOLUTION – 2 | old School Solution

--

SELECT k.EmpId,k.Nm,k.Experience,k.Salary
FROM TheMaximumsPuzzle k
CROSS APPLY
(
	SELECT MAX(experience) a , MAX(Salary) b
	FROM TheMaximumsPuzzle
)z WHERE Salary = b AND Experience = a

--

Output-2

--                            

EmpId       Nm         Experience  Salary
----------- ---------- ----------- -----------
1           Pawan      11          5000

(1 row affected)


--

Please add a comment if you have any other or better solution in mind. I would love to learn it. We all need to learn. Thanks in advance.

Pawan Khowal

Pawan is a SQL Server Developer. If you need any help in writing code/puzzle or training please email at – pawankkmr”AT”gmail.com. Meanwhile please go throgh the top pages from his blog.

Page Detail URL
☛ SQL Advance Puzzles https://msbiskills.com/tsql-puzzles-asked-in-interview-over-the-years/
☛ SQL Tricky Queries https://msbiskills.com/sql-puzzles-finding-outputs/
☛ SQL Server Perfomance tuning Articles https://msbiskills.com/sql-performance-tuning/
☛ SQL Server Articles https://msbiskills.com/t-sql/
☛ SQL Interview Questions & Answers https://msbiskills.com/sql-server-interview-questions/

My SQL Groups on Facebook:

1. If you like this post, you may want to join my SQL SERVER Interview Puzzles/Interview Questions on Facebook: https://www.facebook.com/groups/1430882120556342/

2. If you like this post, you may want to join my SQL Server Puzzles on Facebook:
https://www.facebook.com/groups/206594023090781/

My SQL Page on Facebook:

2. For all the updates you may follow my page -> https://www.facebook.com/MSBISkillscom-1602779883299222/

Enjoy !!! Keep Learning

Http://MsbiSkills.com

SQL Puzzle | Strings containing 3 consecutive numbers in increasing order Puzzle?

Tags

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,


SQL Puzzle | Strings containing 3 consecutive numbers in increasing order Puzzle | SQL Interview Question

In this puzzle you have to find strings which contains number sequences. E.g. If you have a string like ‘1231786’ so in this string you have 123 in sequence so we need this row in the output otherwise we will exclude that row from the output. Also note that we will only have string of numbers only. Alphanumeric characters will not be there.

Please check the sample input and the expected output.

Sample Input

Vals
1234
1112
1
1034
NULL

Expected Output

VALS
1234

Use below script to create table and insert sample data into it.

--

CREATE TABLE CONSECUTIVE
(
	Vals VARCHAR(100)
)
GO

INSERT INTO CONSECUTIVE VALUES
(1234),
(1112),
(1),
(1034),
(NULL)
GO

SELECT * FROM CONSECUTIVE
GO


--

Rules/Restrictions

The solution should be should use “SELECT” statement or “CTE”.

Add your solution(s) in the comments section or send you solution(s) to pawankkmr@gmail.com

1 SOLUTION

SOLUTION – 1

--

/* In this solution we have created a new table called [pos] where we are storing all the combinations of 3 digits in consecutive numbers in increasing order*/

CREATE TABLE [dbo].[pos]
(
       [opt] [int] NULL
) 
GO

INSERT [dbo].[pos] ([opt]) VALUES (123)
GO
INSERT [dbo].[pos] ([opt]) VALUES (234)
GO
INSERT [dbo].[pos] ([opt]) VALUES (345)
GO
INSERT [dbo].[pos] ([opt]) VALUES (456)
GO
INSERT [dbo].[pos] ([opt]) VALUES (567)
GO
INSERT [dbo].[pos] ([opt]) VALUES (678)
GO
INSERT [dbo].[pos] ([opt]) VALUES (789)
GO

/*After that we just have to JOIN this table with the input table to match the things*/


SELECT VALS from consecutive  c
CROSS JOIN pos 
WHERE CHARINDEX(CAST(opt AS VARCHAR(50)),vals) > 0 
GROUP BY VALS

--

Output-1

--                            

VALS
---------------- 
1234

(1 row affected)

--

SOLUTION – 2 | Using Recursion – Solution BY Ashu S

--

;With cte as 
(
	select vals as a, vals as b from consecutive
	union all
	select a, SUBSTRING(b,2,len(b)-1) from cte
	where len(b)>3
)
select distinct a 
from cte where cast(cast(b as int)- cast (replicate(substring(b,1,1),len(b)) as int) 
as varchar(max)) like '12%'

--

Output-2

--                            

a
------------------ 
1234

(1 row affected)

--

Add a comment if you have any other or better solution in mind. I would love to learn it. We all need to learn.

Pawan Khowal

Pawan is a SQL Server Developer. If you need any help in writing code/puzzle or training please email at – pawankkmr”AT”gmail.com. Meanwhile please go throgh the top pages from his blog.

Page Detail URL
☛ SQL Advance Puzzles https://msbiskills.com/tsql-puzzles-asked-in-interview-over-the-years/
☛ SQL Tricky Queries https://msbiskills.com/sql-puzzles-finding-outputs/
☛ SQL Server Perfomance tuning Articles https://msbiskills.com/sql-performance-tuning/
☛ SQL Server Articles https://msbiskills.com/t-sql/
☛ SQL Interview Questions & Answers https://msbiskills.com/sql-server-interview-questions/

My SQL Groups on Facebook:

1. If you like this post, you may want to join my SQL SERVER Interview Puzzles/Interview Questions on Facebook: https://www.facebook.com/groups/1430882120556342/

2. If you like this post, you may want to join my SQL Server Puzzles on Facebook:
https://www.facebook.com/groups/206594023090781/

My SQL Page on Facebook:

2. For all the updates you may follow my page -> https://www.facebook.com/MSBISkillscom-1602779883299222/

Enjoy !!! Keep Learning

Http://MsbiSkills.com

SQL Puzzle | DISTINCT Count with NULL Puzzle – A SINGLE SELECT? | SQL Interview Question

Tags

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,


SQL Puzzle | DISTINCT Count with NULL Puzzle – A single SELECT? | SQL Interview Question

In this puzzle you have to distinct records for each Id. The challege here is to do that in a single select. The other condition is that we need to consider NULL while considering distinct records. This is one of my Favorite interview question. Don’t know why it was not published earlier.

Please check the sample input and the expected output.

Can you do this in a single select ?

Sample Input

Id Vals
1 a
1 NULL
2 b
2 b
2 b
2 c
2 NULL
3 NULL
3 NULL
4 a
4 a
4 a

Expected Output

Id DistinctCount
1 2
2 3
3 1
4 1

Use below script to create table and insert sample data into it.

--

CREATE TABLE GetUniqueCountwithNULLs
(
	 Id INT
	,Vals VARCHAR(100)
)
GO

INSERT INTO GetUniqueCountwithNULLs VALUES
(1,'a'),
(1,NULL),
(2,'b'),
(2,'b'),
(2,'b'),
(2,'c'),
(2,NULL),
(3,NULL),
(3,NULL),
(4,'a'),
(4,'a'),
(4,'a')
GO

SELECT * FROM GetUniqueCountwithNULLs
GO

--

Rules/Restrictions

The solution should be should use “SELECT” statement or “CTE”.

Add your solution(s) in the comments section or send you solution(s) to pawankkmr@gmail.com

4 SOLUTIONS

SOLUTION – 1 | A SINGLE SELECT Solution

--

SELECT Id , COUNT(DISTINCT Vals) + MAX(CASE WHEN Vals IS NULL THEN 1 ELSE 0 END)  DistinctCount
FROM GetUniqueCountwithNULLs
GROUP BY Id 

--

Output-1

--                            


Id          DistinctCount
----------- -------------
1           2
2           3
3           1
4           1


(4 rows affected)



--

SOLUTION – 2 | A SINGLE SELECT Solution – Solution BY Vikas G

--

SELECT Id , COUNT(DISTINCT IIF(Vals IS NULL,'a',Vals+' a')) DistinctCount
FROM GetUniqueCountwithNULLs
GROUP BY Id


--

Output-2

--                            


Id          DistinctCount
----------- -------------
1           2
2           3
3           1
4           1


(4 rows affected)



--

SOLUTION – 3 | TWO SELECT SOLUTION with ROW_Number()

--

;WITH CTE AS 
(
	SELECT *, ROW_NUMBER() OVER (PARTITION BY id,vals ORDER BY vals) AS RN FROM GetUniqueCountwithNULLs 
)
SELECT Id, COUNT(*) DistinctCount from cte 
WHERE RN=1 
GROUP BY ID 

--

Output-3

--                            


Id          DistinctCount
----------- -------------
1           2
2           3
3           1
4           1


(4 rows affected)



--

SOLUTION – 4 | TWO SELECT SOLUTION with Group By

--

SELECT ID, COUNT(DISTINCT Vals) , (COUNT(*) - COUNT(vals)) DistinctCount
FROM
(
	SELECT ID,Vals FROM GetUniqueCountwithNULLs 
	GROUP BY ID,VALS
)a 
GROUP By ID
GO 

--

Output-4

--                            


Id          DistinctCount
----------- -------------
1           2
2           3
3           1
4           1


(4 rows affected)



--

Related Puzzles

1 https://msbiskills.com/2018/02/16/sql-puzzle-the-amazing-null-problem-sql-interview-question/
2 https://pawankkmr.wordpress.com/2012/07/24/t-sql-6/
3 https://pawankkmr.wordpress.com/2015/03/31/t-sql-query-group-by-remove-null-uom-puzzle/
4 https://pawankkmr.wordpress.com/2015/04/02/t-sql-query-count-null-values-puzzle/
5 https://pawankkmr.wordpress.com/2015/05/10/t-sql-query-the-previous-valuenon-null-puzzle/
6 https://msbiskills.com/2015/08/06/t-sql-query-the-remove-nulls-puzzle/
7 https://msbiskills.com/2016/02/07/sql-puzzle-the-remove-null-puzzle/
8 https://msbiskills.com/2016/05/18/sql-puzzle-the-null-columns-puzzle/
9 https://msbiskills.com/2016/07/26/sql-puzzle-remove-nulls-via-row-wise-pattern/
10 https://msbiskills.com/2017/02/15/sql-puzzle-the-isnull-puzzle/
11 https://msbiskills.com/2017/12/26/sql-puzzle-the-tricky-null-puzzle-1/
12 https://msbiskills.com/2017/12/26/sql-puzzle-the-tricky-null-puzzle-2concat/
13 https://msbiskills.com/2018/02/08/sql-puzzle-get-isnull-isnull-next-non-null-value-previous-non-null-value-0-puzzle/

Add a comment if you have any other or better solution in mind. I would love to learn it. We all need to learn.

Pawan Khowal

Pawan is a SQL Server Developer. If you need any help in writing code/puzzle or training please email at – pawankkmr”AT”gmail.com. Meanwhile please go throgh the top pages from his blog.

Page Detail URL
☛ SQL Advance Puzzles https://msbiskills.com/tsql-puzzles-asked-in-interview-over-the-years/
☛ SQL Tricky Queries https://msbiskills.com/sql-puzzles-finding-outputs/
☛ SQL Server Perfomance tuning Articles https://msbiskills.com/sql-performance-tuning/
☛ SQL Server Articles https://msbiskills.com/t-sql/
☛ SQL Interview Questions & Answers https://msbiskills.com/sql-server-interview-questions/

My SQL Groups on Facebook:

1. If you like this post, you may want to join my SQL SERVER Interview Puzzles/Interview Questions on Facebook: https://www.facebook.com/groups/1430882120556342/

2. If you like this post, you may want to join my SQL Server Puzzles on Facebook:
https://www.facebook.com/groups/206594023090781/

My SQL Page on Facebook:

2. For all the updates you may follow my page -> https://www.facebook.com/MSBISkillscom-1602779883299222/

Enjoy !!! Keep Learning

Http://MsbiSkills.com

SQL Puzzle | Handling Special characters with For XML PATH(”) Puzzle

Tags

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,


SQL Puzzle | Handling Special characters with For XML PATH(”) Puzzle

In this puzzle you have to print all prime numbers less than or equal to 1000. Print your result on a single line, and use the ampersand (&) character as your separator.

Notes -If you use FOR XML PATH(”) some entries having & shows [& amp ;] This is not what we require. To handle this we need to use the cool trick – TYPE directive. Example FOR XML PATH(”),TYPE).value(‘.’,’NVARCHAR(MAX)’). So after this you do not have to worry about the HTML characters any more.

Sample Example of XML PATH(”),TYPE).value(‘.’,’NVARCHAR(MAX)’)

In this example I am just printing the prime numbers below 1000 and using & as my separator.

--                            

SET QUOTED_IDENTIFIER ON;
DECLARE @Limit AS INT = 1000
DECLARE @ AS VARCHAR(MAX) = ''
;WITH SingleDigits(Number) AS
(
    SELECT Number
    FROM (VALUES (1), (2), (3), (4), (5), (6), (7), (8),
    (9), (0)) AS X(Number)
)
,Series AS
(
    SELECT (d1.Number+1) + (10*d2.Number) + (100*d3.Number) + (1000*d4.Number) Number
    from
    SingleDigits as d1,
    SingleDigits as d2,
    SingleDigits as d3,
    SingleDigits as d4
),
CTE1 AS 
(
	SELECT DISTINCT Number
	FROM 
		Series num
	WHERE 
		Number >= 2 AND Number <= 1000 AND 
			NOT EXISTS 
	( 
			SELECT 1 FROM Series AS num1 WHERE num1.Number > 1
		AND  num1.Number < num.Number
		AND  num.Number % num1.Number = 0
	)	
)
,CTE2 AS
(
	SELECT
	(SELECT '&'+CAST(t2.Number AS VARCHAR(10))
	from CTE1 t2
	ORDER BY Number
	FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)') a
)
SELECT @ = SUBSTRING(a,2,LEN(a)) FROM CTE2
PRINT @

--

OUTPUT

--                            

2&3&5&7&11&13&17&19&23&29&31&37&41&43&47&53&59&61&67&71&73&79&83&89&97&101&103&107&109&113&127&131&137&139&149
&151&157&163&167&173&179&181&191&193&197&199&211&223&227&229&233&239&241&251&257&263&269&271&277&281&283&293
&307&311&313&317&331&337&347&349&353&359&367&373&379&383&389&397&401&409&419&421&431&433&439&443&449&457&461
&463&467&479&487&491&499&503&509&521&523&541&547&557&563&569&571&577&587&593&599&601&607&613&617&619&631&641
&643&647&653&659&661&673&677&683&691&701&709&719&727&733&739&743&751&757&761&769&773&787&797&809&811&821&823
&827&829&839&853&857&859&863&877&881&883&887&907&911&919&929&937&941&947&953&967&971&977&983&991&997

--

Read Related Puzzles –

https://msbiskills.com/2016/06/23/sql-puzzle-biggest-prime-number-divisor-of-an-input-number/
https://msbiskills.com/2016/06/15/sql-puzzle-the-prime-number-puzzle-v/
https://msbiskills.com/2016/06/01/sql-puzzle-5-prime-numbers-above-a-given-number/
https://msbiskills.com/2016/05/22/sql-puzzle-the-circular-prime-numbers-puzzle/
https://msbiskills.com/2015/10/30/sql-puzzle-check-prime-number-puzzle/
https://msbiskills.com/2015/10/25/sql-puzzle-the-prime-numbers-puzzle/

Pawan Khowal

Pawan is a SQL Server Expert. If you need any help in writing code/puzzle or training please email at – pawankkmr”AT”gmail.com. Meanwhile please go throgh the top pages from his blog.

Page Detail URL
☛ SQL Advance Puzzles https://msbiskills.com/tsql-puzzles-asked-in-interview-over-the-years/
☛ SQL Tricky Queries https://msbiskills.com/sql-puzzles-finding-outputs/
☛ SQL Server Perfomance tuning Articles https://msbiskills.com/sql-performance-tuning/
☛ SQL Server Articles https://msbiskills.com/t-sql/
☛ SQL Interview Questions & Answers https://msbiskills.com/sql-server-interview-questions/

My SQL Groups on Facebook:

1. If you like this post, you may want to join my SQL SERVER Interview Puzzles/Interview Questions on Facebook: https://www.facebook.com/groups/1430882120556342/

2. If you like this post, you may want to join my SQL Server Puzzles on Facebook:
https://www.facebook.com/groups/206594023090781/

My SQL Page on Facebook:

2. For all the updates you may follow my page -> https://www.facebook.com/MSBISkillscom-1602779883299222/

Enjoy !!! Keep Learning

Http://MsbiSkills.com