• 1

[SQL] Select multiple columns with only one distinct column


Question

How do you select multiple columns from a table while ensuring that one specific column doesn't contain duplicate values?

SELECT DISTINCT col1,col2,col3,col4 from table

This doesn't work, because DISTINCT here applies to all columns so columns as a whole are distinct. But I want a single column to have distinct values.

I'm using SQL Server. :)

6 answers to this question

Recommended Posts

  • 0

You're looking for GROUP BY. If you wanted to only have the value for col1 show up once in the dataset:

SELECT col1,col2,col3,col4 from table GROUP BY col1

Note that this will compact all the results that would have been display into one row. So you'll end up having to use sums or some other aggregate function to display the correct values if you can expect a different value in a row each time it shows up. Otherwise it will just pick the value from the first row.

  • 0

Thanks for your answer, it actually does serve my purpose. :)

This is the query I ran:

SELECT col1,max(col2), max(col3), max(col4) from table GROUP BY col1

Max functions used here don't mean much, they'er just there to pick the biggest value of the column in the row set.

As I said, in this case it serves my purpose. But what if there were, let's say 4 or more rows with a common col1 value, and you wanted to retrieve columns of some specific middle row among the grouped rows; How would you go about that?

I'm thinking cursors can be one way to do that, right?

  • 0

Thanks for your answer, it actually does serve my purpose. :)

This is the query I ran:

SELECT col1,max(col2), max(col3), max(col4) from table GROUP BY col1

Max functions used here don't mean much, they'er just there to pick the biggest value of the column in the row set.

As I said, in this case it serves my purpose. But what if there were, let's say 4 or more rows with a common col1 value, and you wanted to retrieve columns of some specific middle row among the grouped rows; How would you go about that?

I'm thinking cursors can be one way to do that, right?

I believe you could (SQL Server is not my strongest database skill), but if you can it would be better if you can weed out the row you want using the WHERE clause of the SQL statement.

  • 0

It sounds like you need to do something like the following:

select
* --should specify your specific columns
from table1 t1
inner join 
(select DISTINCT distinctColumn from table) t2
on t1.col = t2.distinctColumn

This code should get your distinct column and then join on it from another (or even the same) table.

  • 0

It sounds like you need to do something like the following:

select
* --should specify your specific columns
from table1 t1
inner join 
(select DISTINCT distinctColumn from table) t2
on t1.col = t2.distinctColumn

This code should get your distinct column and then join on it from another (or even the same) table.

No, doesn't work. It returns duplicate rows.

It doesn't matter tho, as my problem is solved, even ignoring the @kjordan2001's answer. I just needed to omit those non-duplicate valued columns from the select list of a distinct clause, which were trivial anyways. The result set would then only include entirely distinct rows. And FYI, the table in question is named Customer and is part of the AdventureWorks2008R2 sample databases.

Thanks for answers though. :)

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Promoting is fine - advertising, informing, whatever.  But interrupting your PAID OS experience is not.
    • Why does a PDF software need an audio player inside it. What is this bloat.
    • Sadly, that is the state of things. It's basically considered acceptable for any random app running on your computer to use 1+ GB of RAM, and install space, lol, no one even seems to consider that.
    • EU Commission explains why Siri AI isn't launching in the EU, and Apple is to blame by Hamid Ganji Image via Apple This week at Apple’s 2026 developers conference, the iPhone maker unveiled the upgraded Siri after more than a year of delays. The new Siri is now called Siri AI, and it's powered by Google Gemini models. While Siri AI is preparing to roll out to Apple users worldwide, the company’s EU customers might need to wait much longer before getting their hands on the new assistant. Shortly after announcing iOS 27, Apple said in a blog post that Siri AI is not coming to the EU anytime soon due to hurdles posed by the Digital Markets Act (DMA) and other regulatory requirements. To comply with the DMA in the EU, Apple apparently needs to open Siri AI to rival assistants on iOS 27 and iPadOS 27. Apple has refused to do so, which has resulted in Siri AI being delayed for its EU users. The company argues that such a move would put users’ privacy at risk. In a statement to Neowin, a European Commission spokesperson provided more details about why Siri AI will not be rolled out to Apple customers in the region. The statement first noted that the DMA does not prohibit Apple from launching its services in the EU and that the company is simply required to comply with the law. The European Commission spokesperson added that, since Apple is considered a gatekeeper under the DMA, it is “obliged to give third parties access to equivalent features as they give to its own products. Because the DMA is precisely about giving users the choice to use the product they find best suits their needs.” Moreover, the spokesperson said the Commission has been in contact with Apple, though the company “did not develop proposals for DMA compliant interoperability solutions.” The statement also clarified that companies designated as gatekeepers cannot leverage their status and products, such as operating systems, to favor their own AI services. The first public beta of iOS 27 will roll out next month, while the stable version is expected to launch this fall following the release of the iPhone 18 series. It remains unclear when Apple will be able to resolve its DMA-related compliance issues with the European Commission and bring Siri AI to its European customers.
  • Recent Achievements

    • One Month Later
      pinnclepd earned a badge
      One Month Later
    • First Post
      X-No-file earned a badge
      First Post
    • One Month Later
      johnjacobb40 earned a badge
      One Month Later
    • One Year In
      Primer1st earned a badge
      One Year In
    • Experienced
      JayZJay went up a rank
      Experienced
  • Popular Contributors

    1. 1
      +primortal
      510
    2. 2
      PsYcHoKiLLa
      214
    3. 3
      +Edouard
      145
    4. 4
      Steven P.
      88
    5. 5
      ATLien_0
      83
  • Tell a friend

    Love Neowin? Tell a friend!