Anzahl verschiedener Einträge ermitteln

eddi-z

Benutzer
Beiträge
9
Hallo,

In einer Tabellenspalte Typ ENUM habe ich drei verschiedene Möglichkeiten angegeben.
Beispiel:
spalte1 spalte2 (ENUM)
1 art1
1 art1
1 art2
2 art1
2 art1
3 art2
3 art2
4 art2
4 art3
4 art1

Ich brauche jetzt ein statemend das mit jetzt folgendes Ergebnis auswirft:

spalte 1 = mehrere in spalte2
oder
spalte 3 = nur 1x in spalte2
oder
spalte 4 = mehrere in spalte2

Ich hab keine Ahnung, wie ich das bewerkstelligen soll.
Wie oft die einzelnen Einträge vorkommen ist uninteressant.
Es interessiert mich nur kommen mehrere vor oder nicht.

Gruß
Eddi-z
 
Werbung:
Code:
test=*# select * from eddi_z ;
 nr | val  
----+------
  1 | art1
  1 | art1
  1 | art2
  2 | art1
  2 | art1
  3 | art2
  3 | art2
  4 | art2
  4 | art3
  4 | art1
(10 rows)

test=*# select nr, count(val), count(distinct val), case when count(val) != count(distinct val) then 'mehrere' else 'alle gleich' end from eddi_z group by nr;
 nr | count | count |    case     
----+-------+-------+-------------
  1 |     3 |     2 | mehrere
  2 |     2 |     1 | mehrere
  3 |     2 |     1 | mehrere
  4 |     3 |     3 | alle gleich
(4 rows)

test=*#
 
Where-condition noch unbekannt?

Code:
test=*# select nr, count(val), count(distinct val), case when count(val) != count(distinct val) then 'mehrere' else 'alle gleich' end from eddi_z where nr = 1 group by nr;
 nr | count | count |  case   
----+-------+-------+---------
  1 |     3 |     2 | mehrere
(1 row)
 
Werbung:
Natürlich kenne ich WHERE aber mir war nicht klar, wie in diesem Zusammenhang einzufügen.
Vielen Dank ich teste es jetzt.
 
Zurück
Oben