SQL to group by and select a column when not null

vulkanino

So I have a table like this:

ID  DESCRIPTION  AGROUP
-----------------------
1   AN  
2   FI  
3   DOC 1        DOC
4   DOC 2        DOC
5   CO  
6   RI           RI

If the AGROUP column is not null, I want to select and group by that value, otherwise select the DESCRIPTION; in any case order by ID. The result I want is:

ID  RESULT
-----------------------
1   AN  
2   FI  
3   DOC
5   CO  
6   RI

I've tried creating a subquery first, with

SELECT 
  DISTINCT (NVL(AGROUP, DESCRIPTION)) AS DES 
FROM 
  temp
GROUP BY NVL(AGROUP, DESCRIPTION)

And then adding the outer query:

SELECT 
    ID,
    DES 
FROM
(
    SELECT DISTINCT (NVL(AGROUP, DESCRIPTION)) AS DES 
        FROM 
    temp
        GROUP BY NVL(AGROUP, DESCRIPTION) 
) T1
JOIN TEMP T2 ON (T1.DES = T2.AGROUP OR T1.DES = T2.DESCRIPTION)
ORDER BY ID
;

But then I receive DOC twice:

1   AN
2   FI
3   DOC
4   DOC
5   CO
6   RI

SQL makes my head explode! Thanks.

Gordon Linoff

I think you just want group by:

select coalesce(AGROUP, DESCRIPTION) AS DES, min(id) as id
from  temp
group by coalesce(AGROUP, DESCRIPTION);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQL Select/Group by a list of column names

分類Dev

BigQuery SQL: do SELECT aliases have priority over FROM clause column names when used in GROUP BY clause?

分類Dev

SELECT WHERE {column} = CASE WHEN {expression} THEN NULL

分類Dev

Oracle SQL Multi Column <> Null Select

分類Dev

Oracle SQL Multi Column <> Null Select

分類Dev

Format sql column when using select

分類Dev

In proc sql when using SELECT * and GROUP BY, the result is not collapsed

分類Dev

sql select group by int()

分類Dev

Group by column and select range of each group

分類Dev

SELECT MAX()of Column、DATE Column and group by ID

分類Dev

Oracle SQL-SELECT CASE WHEN column =(selectステートメント)

分類Dev

How to group by on selected column in sql?

分類Dev

SQL Server : group by column with another column

分類Dev

Distinct column select and group by multiple columns

分類Dev

How to select multiple columns and group by one column

分類Dev

SQL Select When

分類Dev

SQL where nested select not null

分類Dev

How to populate NULL column with the previous column per group?

分類Dev

How to populate NULL column with the previous column per group?

分類Dev

Select the first row of a column in a group of rows within another column

分類Dev

SQL Server group by absorb null and empty values

分類Dev

(SQL)SELECT GROUP BYの構文

分類Dev

Select the count records in Group by SQL Server?

分類Dev

sql server select the first row of a group

分類Dev

sql select count group by with zero counts

分類Dev

SELECT CASE SQL での Group BY

分類Dev

Append in SQL When field is NULL

分類Dev

SQL Server all(select ...)がnull

分類Dev

How do I select the group with the least number of null values in a groupby?

Related 関連記事

  1. 1

    SQL Select/Group by a list of column names

  2. 2

    BigQuery SQL: do SELECT aliases have priority over FROM clause column names when used in GROUP BY clause?

  3. 3

    SELECT WHERE {column} = CASE WHEN {expression} THEN NULL

  4. 4

    Oracle SQL Multi Column <> Null Select

  5. 5

    Oracle SQL Multi Column <> Null Select

  6. 6

    Format sql column when using select

  7. 7

    In proc sql when using SELECT * and GROUP BY, the result is not collapsed

  8. 8

    sql select group by int()

  9. 9

    Group by column and select range of each group

  10. 10

    SELECT MAX()of Column、DATE Column and group by ID

  11. 11

    Oracle SQL-SELECT CASE WHEN column =(selectステートメント)

  12. 12

    How to group by on selected column in sql?

  13. 13

    SQL Server : group by column with another column

  14. 14

    Distinct column select and group by multiple columns

  15. 15

    How to select multiple columns and group by one column

  16. 16

    SQL Select When

  17. 17

    SQL where nested select not null

  18. 18

    How to populate NULL column with the previous column per group?

  19. 19

    How to populate NULL column with the previous column per group?

  20. 20

    Select the first row of a column in a group of rows within another column

  21. 21

    SQL Server group by absorb null and empty values

  22. 22

    (SQL)SELECT GROUP BYの構文

  23. 23

    Select the count records in Group by SQL Server?

  24. 24

    sql server select the first row of a group

  25. 25

    sql select count group by with zero counts

  26. 26

    SELECT CASE SQL での Group BY

  27. 27

    Append in SQL When field is NULL

  28. 28

    SQL Server all(select ...)がnull

  29. 29

    How do I select the group with the least number of null values in a groupby?

ホットタグ

アーカイブ