Hey Folks! Few days back i attended an interview. I got few interesting questions, I am sharing few which i remembered :
Q1 : Interviewer need each character count in table. { Lets say there is a table with one column varchar data type, You need to find each character count}
Q2 : There is a txt file. It has only one column with some string and some numbers. You need to send string to one table and integer to other table with SSIS.
Q3 : There are two tables. both having one column as id. What could be minimum and maximum number of rows if we use inner join and first table having 2 rows and second table having 3 rows. {data could be anything in table}
Q4 : Write a query to find the name of the bank or banks whose revenue never went less from previous year. {data is shown below}
---------------------------------------------------------------------
Ans1 :
Q1 : Interviewer need each character count in table. { Lets say there is a table with one column varchar data type, You need to find each character count}
Q2 : There is a txt file. It has only one column with some string and some numbers. You need to send string to one table and integer to other table with SSIS.
Q3 : There are two tables. both having one column as id. What could be minimum and maximum number of rows if we use inner join and first table having 2 rows and second table having 3 rows. {data could be anything in table}
Q4 : Write a query to find the name of the bank or banks whose revenue never went less from previous year. {data is shown below}
BankName | Year | Revenue(Cr) |
ICICI | 2013 | 515 |
ICICI | 2014 | 602 |
BOI | 2015 | 477 |
BOI | 2016 | 564 |
Axis | 2013 | 497 |
Hdfc | 2013 | 503 |
Hdfc | 2014 | 580 |
Axis | 2016 | 666 |
BOI | 2013 | 369 |
BOI | 2014 | 366 |
ICICI | 2015 | 715 |
ICICI | 2016 | 780 |
Hdfc | 2015 | 740 |
Hdfc | 2016 | 760 |
Axis | 2014 | 560 |
Axis | 2015 | 480 |
---------------------------------------------------------------------
Ans1 :
CREATE TABLE #t (val NVARCHAR(10)) INSERT INTO #t VALUES ('vimal') ,('kamal') SELECT * FROM #t; WITH cte AS ( SELECT Val ,len(val) AS lnt ,val RemainingStr ,1 no FROM #t UNION ALL SELECT Cast(Right(RemainingStr, 1) AS NVARCHAR(10)) ,lnt - 1 ,SUBSTRING(RemainingStr, 1, len(RemainingStr) - 1) ,no + 1 FROM cte WHERE lnt > 0 ) ,ct AS ( SELECT Val FROM cte WHERE no > 1 ) SELECT Val ,COUNT(Val) Occurance FROM CT GROUP BY Val DROP TABLE #t
Ans2 :
Ans 3 :
Minimum : No rows [No join match]
Maximum : 6 [all values are same like 1]
Ans 4 :
CREATE TABLE Bank ( BankName VARCHAR(100) ,Year INT ,Revenue MONEY ) INSERT INTO Bank VALUES ( 'ICICI' ,2013 ,515 ) ,( 'ICICI' ,2014 ,602 ) ,( 'BOI' ,2015 ,477 ) ,( 'BOI' ,2016 ,564 ) ,( 'Axis' ,2013 ,497 ) ,( 'Hdfc' ,2013 ,503 ) ,( 'Hdfc' ,2014 ,580 ) ,( 'Axis' ,2016 ,666 ) ,( 'BOI' ,2013 ,369 ) ,( 'BOI' ,2014 ,366 ) ,( 'ICICI' ,2015 ,715 ) ,( 'ICICI' ,2016 ,780 ) ,( 'Hdfc' ,2015 ,740 ) ,( 'Hdfc' ,2016 ,760 ) ,( 'Axis' ,2014 ,560 ) ,( 'Axis' ,2015 ,480 ) --------------------------- SELECT * FROM Bank ORDER BY BankName ,Year ASC; WITH BankCTE AS ( SELECT * ,LEAD(Revenue) OVER ( PARTITION BY BankName ORDER BY Year ASC ) NextYearRevenue FROM Bank ) ,FindBank AS ( SELECT BankName FROM BankCTE WHERE NextYearRevenue < Revenue AND NextYearRevenue IS NOT NULL ) SELECT BankName FROM Bank GROUP BY BankName EXCEPT SELECT BankName FROM FindBank