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 August SQL Puzzle: SQL Advance Query – Find max value from multiple columns

SQL Puzzle: SQL Advance Query – Find max value from multiple columns

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

Check the below input data and require output data to find max value from multiple columns.

Input Data:

1
2
3
4
5
6
Class Mark1 Mark2 Mark3
---------- ----------- ----------- -----------
A 88 98 52
B 85 54 93
C 65 87 45
D 35 77 63

Require output data:

1
2
3
4
5
6
Class MaxMarks
---------- -----------
A 98
B 93
C 87
D 77

Create a table with sample data:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE TABLE MaxClassMarks
(
Class VARCHAR(10)
,Mark1 INT
,Mark2 INT
,Mark3 INT
)
GO
 
INSERT INTO MaxClassMarks
VALUES
('A',88,98,52)
,('B',85,54,93)
,('C',65,87,45)
,('D',35,77,63)
GO

Solution 1: Use CASE .. WHEN

1
2
3
4
5
6
SELECT Class,
CASE WHEN mark1 > mark2 AND mark1 > mark3 THEN mark1
WHEN mark2 > mark1 AND mark2 > mark3 THEN mark2
WHEN mark3 > mark2 AND mark3 > mark1 THEN mark3
END AS MaxMarks
FROM MaxClassMarks

Solution 2: Use Subquery and MAX()

1
2
3
4
5
6
7
8
SELECT Class,
(
SELECT Max(T)
FROM (
VALUES (mark1) , (mark2), (mark3)
) as value(T)
) as maxmark
FROM MaxClassMarks

Solution 3: Use MAX() with Group BY

1
2
3
4
5
6
7
8
9
SELECT Class, MAX(maxmark) maxmark
FROM
(
SELECT Class , mark1 as maxmark FROM MaxClassMarks
UNION ALL
SELECT Class , mark2 as maxmark FROM MaxClassMarks
UNION ALl
SELECT Class , mark3 as maxmark FROM MaxClassMarks
) a GROUP BY Class

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

Aug 5, 2017Anvesh Patel
SQL Server: Script to execute Update Statistics for all DatabasesSQL Server: Script to check the Allocation Units of a Table
Comments: 1
  1. Saikat
    August 9, 2017 at 5:22 am

    SELECT Class,GREATEST(Mark1,Mark3,Mark2) AS MaxMarks FROM MaxClassMarks

    ReplyCancel

Leave a Reply Cancel reply

CAPTCHA
Refresh

*

Anvesh Patel
Anvesh Patel

Database Engineer

August 5, 2017 1 Comment SQL PuzzleMAX, SQL Advance Query, SQL Interview, SQL Problem, SQL Programming, SQL Puzzle, SQL Query, SQL Tips and Tricks
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....