Hallo
wie kann ich ermitteln, für welchen Tag es mehrere Einträge gibt?
Beispiel:
date | time
------------+----------
2002-01-01 | 00:00:00
2003-01-01 | 00:00:00
2006-12-11 | 11:08:37
2006-12-11 | 11:10:21
2006-12-31 | 00:00:00
2006-12-31 | 15:21:32
2006-12-31 | 17:00:00
das ist einfach.
SELECT
date
FROM tabelle
GROUP BY date
HAVING COUNT(*) > 1
psql -U xyz -d xyz -c "SELECT DISTINCT to_char(gueltigab, 'YYYY-MM-DD') AS date, TO_CHAR(gueltigab, 'HH24:MI:SS') AS time, count(gueltigab) FROM xyz GROUP BY gueltigab HAVING count(to_char(gueltigab, 'YYYY-MM-DD')) > 1"
was soll das? Du darfst die Spalte "gueltigab" überhaupt nicht berücksichtigen, da Du sonst nicht so gruppieren kannst, wie Du willst.
wie bekomme ich es hin, dass count soetwas ergibt?
date | time | count
------------+----------+-------
2002-01-01 | 00:00:00 | 1
2003-01-01 | 00:00:00 | 1
2006-12-11 | 11:08:37 | 2
2006-12-11 | 11:10:21 | 2
2006-12-31 | 00:00:00 | 3
2006-12-31 | 15:21:32 | 3
2006-12-31 | 17:00:00 | 3
Nimm die Spalte COUNT(*) AS count (ein superschlechter Spaltenname) hinzu.
Mache daraus einen View. Joine die Ausgangstabelle mit dem View über die Spalte date.
date | count
------------+-------
2002-01-01 | 1
2003-01-01 | 1
2006-12-11 | 2
2006-12-31 | 3
das ist wieder supereinfach:
SELECT
date,
COUNT(*) AS anzahl -- count ist ein miserabler Spaltenname :-)
FROM tabelle
GROUP BY date
zurückgegeben soll dann nur noch
date | count
------------+-------
2006-12-11 | 2
2006-12-31 | 3
ebenfalls einfach:
SELECT
date,
COUNT(*) AS anzahl -- count ist ein miserabler Spaltenname :-)
FROM tabelle
GROUP BY date
HAVING COUNT(*) > 1
das sollte sich aber mit having regeln lassen, wenn ich die richtige Anzahl ermitteln kann.
ja, s.o.
ps. Frage ist Daten die Mehrzahl von Datum?
Ja.
Zusammenfassung: Ich verstehe Dein Problem nicht.
Freundliche Grüße
Vinzenz