Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

Select distinct column

Posted on 2006-11-26
Last Modified: 2007-08-27
I have a database with where a value in a column may appear many times. It would be easy to select the distinct values from this column on its own but I need to also return other columns. Therefore the distinct clause will apply to all the columns being returned (so distinct is where column a, b, c and d are distinct). I suppose then my question is simply how do I return distinct values from column a and also return column b and c (therefore just taking say the distinct values from column a and ignoring the fact that value may appear again in the column).
Hope you can understand me.
thanks in advance
Question by:manukaucouncil
  • 4
  • 2
  • 2

Expert Comment

ID: 18015474
select distinct colA, colB, colC, colD from sourceTable


select colA, colB, colC, colD
from sourceTable
group by colA, colB, colC, colD

Not sure if that answers your question mind, as I'm not really sure what you are asking.


Author Comment

ID: 18015527
when you use "select distinct colA, colB, colC, colD from sourceTable" does that mean that colA, colB, colC and colD need to be distinct together or is it just distinct colA? Say for example I want to just return distinct colB values... how would I do this as select colA, distinct colB....... does not work.

Expert Comment

ID: 18015703
If you just want distinct colB values then you can do

select distinct colB from sourceTable

for distinct colA then

select distinct colA from sourceTable

for every distinct combination of colA and colB you

select distinct colA, colB from sourceTable

What are your columns?  What are you trying to achieve?

Back Up Your Microsoft Windows Server®

Back up all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.


Author Comment

ID: 18015922
This is my script:
select amount_id, adjust_id, amttyp_id, description, order_no, essbase_account_id, essbase_entity_id, ltrim(STR(adjust_id)) + 'a' +  ltrim(STR(order_no)) AS adjust_order, amount_id from atm_amount where essbase_account_id in (select dimension_1_node_key from dss_dimension_1 where node_desc = 'PS3001') and adjust_id in (select distinct adjust_id from atm_adjustment where adjtyp_id in (1,2) and status_id <7) order by adjust_id,order_no

Bascically I just want to return the distinct adjust_id's in the outer select statement but with the other information still attached to it.
LVL 39

Expert Comment

ID: 18016031
do you mean you want
adjust_id in (select distinct adjust_id from atm_adjustment where adjtyp_id in (1,2) and status_id <7) order by adjust_id,order_no
adjust_id in (select distinct adjust_id, other1,other2 from atm_adjustment where adjtyp_id in (1,2) and status_id <7) order by adjust_id,order_no

if you add other information in the outer select you cannot use it with "in" condition.

why do you need other information in that outer sql? can you explain what you are trying to do?

Author Comment

ID: 18016244
Say for example I have this data:

ClassName         ClassDescription                StudentName              Mark
SQL Server         All about SQL                      Jeremy                        A
VB                      All about VB                        Jeremy                        A+
SQL Server        All about SQL 2                       Bob                             B

Now I want to do something like this: "select distinct classname, classdescription, studentname, mark from table"
The problem with this script is that it will recognise rows 1 and 3 as distinct because they have a different description.
So I really only want the distinct clause to apply to classname so the results return as follows:

ClassName         ClassDescription                StudentName              Mark
SQL Server         All about SQL                      Jeremy                        A
VB                      All about VB                        Jeremy                        A+

So it just ignores the second occurance of SQL Server in classname.
I hope that makes it a bit clearer.
LVL 39

Accepted Solution

appari earned 250 total points
ID: 18016377
in case of class name repeatition which record you want to show?
but studentname is different in your sample data. even if studentname is different you want to show only one record?
in that case you have to use group by classname and use some aggregate function on the remaining columns.
decide on what to use max or min .

SQL will be something like this

select ClassName, min(ClassDescription) ClassDescription, min(StudentName) StudentName, max(Mark) Mark
from yourtable

Author Comment

ID: 18016380
Ahhh that certainly makes sense. Thanks

Featured Post

Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
In this article we will learn how to fix  “Cannot install SQL Server 2014 Service Pack 2: Unable to install windows installer msi file” error ?
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
Using examples as well as descriptions, and references to Books Online, show the different Recovery Models available in SQL Server and explain, as well as show how full, differential and transaction log backups are performed

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question