Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 877459
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T11:36:46+00:00 2026-05-15T11:36:46+00:00

I want to return the top three pets for each employee as columns instead

  • 0

I want to return the top three pets for each employee as columns instead of rows i.e.

Owner_ID Pet
--------------------
1        Cat  
1        Dog  
1        Hamster  
2        Cow   
2        Sheep  
3        Dog  

Convert it to

Owner_ID    Pet1  Pet2   Pet3
-------------------------------------
1           Cat   Dog    Hamster  
2           Cow   Sheep  null  
3           Dog   null   null 

The name of pets come from a lookup table and there can be any number of pets but I only want to return the top 3.

Here is my query:

SELECT Owner,Pet1, Pet2,Pet3  
    FROM  
    (select distinct OwnerID as Owner,glcom.Value as Pets  
    from Owner ,OwnerPets ,Pet    
    where Pet.Type='Furry'  
    and OwnerPets.OwnerID = OwnerID.OwnerID   
    and OwnerPets.PetID = Pet.PetID ) AS SourceTable  
PIVOT  
(  
Max(Pets)  
FOR Pets IN (Pet1, Pet2,Pet3)  
) AS PivotTable; 

Unfortunately it only returns null for each row… so the output I see is

Owner_ID    Pet1  Pet2   Pet3
-------------------------------------
1           null  null  null  
2           null  null  null  
3           null  null  null 

Hopefully it is a common problem and someone must have solved it already.

Thanks

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T11:36:47+00:00Added an answer on May 15, 2026 at 11:36 am

    If I have understood you correctly you can use ROW_NUMBER() over (partition by Owner_ID order by ...) on your query then pivot using those.

    Example follows.

    WITH Unpivoted AS
    (
    SELECT X.*, ROW_NUMBER() over (partition by Owner_ID order by Pet) AS RN
      FROM (VALUES  
    (1,        'Cat') , 
    (1,        'Dog')  ,
    (1,        'Hamster')  ,
    (1,        'Rhino'),
    (1,        'Zebra'),
    (2,        'Cow')  , 
    (2,        'Sheep')  ,
    (3,        'Dog' ) 
    ) AS X (Owner_ID, Pet)
    )
    
    SELECT Owner_Id, [1] AS Pet1, [2] AS Pet2,[3] AS Pet3 FROM Unpivoted
    PIVOT  
    (  
    Max(Pet)  
    FOR RN IN ([1], [2],[3])  
    ) AS PivotTable; 
    

    Returns

    Owner_Id    Pet1    Pet2    Pet3
    ----------- ------- ------- -------
    1           Cat     Dog     Hamster
    2           Cow     Sheep   NULL
    3           Dog     NULL    NULL
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to return the top 5 records of a table in a dataset
I want to return ArrayList<HashMap<String,String>> in EL function with three String argument. How to
I want to return the most recent ten (complete) rows from a table, but
I want to return StudentId to use elsewhere outside of the scope of the
I want to return all application dates for the current month and for the
I want to return a different value in string context and numeric context like
I want to return a private field from a remoted object but i get
I want to return a set of values from function till the point they
I want to return some errors to my jquery method. What is happening is
I want to return nothing when if condition is not met, for instance (if

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.