datumssprünge kalenderwochen, die woche 52...

echo $gruss=tageszeit($time);

Liebe Leute, leider hab ich noch ein kleines grosses Problem mit meinen PGSQL Abfragen.

Folgende Code’s:

select count (id) as anzahl, to_char(creation_date,'[color=#008000]yyyy mm iw[/color]') as datum 
from tbl_order 
where 
(creation_date between '2010-12-25 usw' and '2011-02-01 usw' ) 
group by datum
 order by datum asc

ergibt ,
zumindest die zahlen sind richtig,
[TABLE=“width: 203”]
[TR=“class: data1”]
[TD][RIGHT]1540
[/RIGHT]
[/TD]
[TD]2010 12 51[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]3027
[/RIGHT]
[/TD]
[TD]2010 12 52[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]5463
[/RIGHT]
[/TD]
[TD]2011 01 01
[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]…[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]647
[/RIGHT]
[/TD]
[TD]2011 01 05[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]2524
[/RIGHT]
[/TD]
[TD]2011 01 52
[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]682[/RIGHT]
[/TD]
[TD]2011 02 05[/TD]
[/TR]
[/TABLE]




select count (id) as anzahl, to_char(creation_date,'[color=#008000]yyyy iw[/color]') as datum
from tbl_order
where
(creation_date between '2010-12-25 usw' and '2011-02-01 usw' )
group by datum
order by datum asc

ergibt totalen Unsinn, beim datumssprung ueber
mehrere jahre.

Was an sich natuerlich richtig ist, allerdings beginnt hier mein Dilemma:
Der Datumssprung von KW52 bzw 53 2010 auf KW53 auf 2011…

woche 52(53 ?) von (2010) sollte hinzugezaehlt werden zu woche 52 von (Januar 2011)

Ich bin hier leider ueberfordert, und moechte um Hilfe bitten.

(anm: entschuldigung für den umlaut im titel)

Mir ist nicht ganz klar, was Dein Problem ist. Die Tatsache, daß die letzte KW eines Jahres auch mal in das folgende Jahr reichen kann? Das ist halt so festgelegt…
Oder die Sortierfolge? Nun, Du hast ein sortierfähiges Datum vom passenden Datentyp, machst daraus einen nicht sortierfähigen String, und sortierst danach.
PEBKAC, Layer8-Problem. Demo:

test=# select datum, to_char(datum, 'yyyy iw') from (select ('2010-12-28'::date + s * '1day'::interval)::date as datum from generate_series(0,10) s) foo order by to_char;
   datum    | to_char
------------+---------
 2010-12-28 | 2010 52
 2010-12-29 | 2010 52
 2010-12-30 | 2010 52
 2010-12-31 | 2010 52
 2011-01-07 | 2011 01
 2011-01-05 | 2011 01
 2011-01-06 | 2011 01
 2011-01-03 | 2011 01
 2011-01-04 | 2011 01
 2011-01-02 | 2011 52
 2011-01-01 | 2011 52
(11 rows)

Andreas

Ich versuch noch mal zu antworten, weil der erst Versuch wohl nicht klappte:

Also, was ist Dein Problem?

  • daß die KW nicht an der Jahresgrenze wechselt? das ist so definiert.
  • daß die Sortierung nicht klappt? Nun, du machst aus einem sortierfähigem DATE einen nicht sortierfähigen STRING. Demo:
test=# select datum, to_char(datum, 'yyyy iw') from (select ('2010-12-28'::date + s * '1day'::interval)::date as datum from generate_series(0,10) s) foo order by to_char;
   datum    | to_char
------------+---------
 2010-12-28 | 2010 52
 2010-12-29 | 2010 52
 2010-12-30 | 2010 52
 2010-12-31 | 2010 52
 2011-01-07 | 2011 01
 2011-01-05 | 2011 01
 2011-01-06 | 2011 01
 2011-01-03 | 2011 01
 2011-01-04 | 2011 01
 2011-01-02 | 2011 52
 2011-01-01 | 2011 52
(11 rows)

Andreas

Entschuldigung bitte für die ungenaue Ausdrucksweise.
Das die KW nicht am 31. Dez springt, ist mir durchaus bewusst, hier liegt nicht das Problem.
Das Datum in einen String zu verwandeln und dannach zu sortieren funktioniert mit allen anderen
Quantisierungsmöglichkeiten(Tage, Monate, Jahre) ganz gut, nur bei der Woche ergeben sich dank
der Aufteilung auf 2 Monate aus anderen Jahren Probleme…

Meine Aufgabenstellung wäre, folgende Ausgabe zu erreichen:

[TABLE=“width: 477, align: left”]
[TR]
[TD]…
[/TD]
[TD]…
[/TD]
[/TR]
[TR]
[TD]2010 12 KW 51
[/TD]
[TD]12345
[/TD]
[/TR]
[TR]
[TD]2010 12 KW 52 + 2011 01 KW52
[/TD]
[TD]12345
[/TD]
[/TR]
[TR]
[TD]2011 01 KW 01
[/TD]
[TD]12345
[/TD]
[/TR]
[TR]
[TD]…
[/TD]
[TD]…
[/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[/TABLE]










Ich hoffe, das macht Sinn? Danke auf jeden Fall.

PostgreSQL wäre nicht PostgreSQL, wenn sowas nicht gänge :wink:

test=*# select datum, case when extract(year from datum) = extract(year from datum + '1week'::interval) then to_char(datum, 'yyyy iw') else to_char(datum, 'yyyy iw') || ' und erste Woche neues Jahr' end from (select ('2010-12-20'::date + s * '1day'::interval)::date as datum from generate_series(0,20)s) foo;
   datum    |                case
------------+------------------------------------
 2010-12-20 | 2010 51
 2010-12-21 | 2010 51
 2010-12-22 | 2010 51
 2010-12-23 | 2010 51
 2010-12-24 | 2010 51
 2010-12-25 | 2010 51 und erste Woche neues Jahr
 2010-12-26 | 2010 51 und erste Woche neues Jahr
 2010-12-27 | 2010 52 und erste Woche neues Jahr
 2010-12-28 | 2010 52 und erste Woche neues Jahr
 2010-12-29 | 2010 52 und erste Woche neues Jahr
 2010-12-30 | 2010 52 und erste Woche neues Jahr
 2010-12-31 | 2010 52 und erste Woche neues Jahr
 2011-01-01 | 2011 52
 2011-01-02 | 2011 52
 2011-01-03 | 2011 01
 2011-01-04 | 2011 01
 2011-01-05 | 2011 01
 2011-01-06 | 2011 01
 2011-01-07 | 2011 01
 2011-01-08 | 2011 01
 2011-01-09 | 2011 01
(21 rows)

Das an Deine Wünsche anzupassen überlasse ich Dir zur Übung :wink:


Andreas

Änder das SQL mal in

test=*# select datum, case when to_char(datum, 'iw')::int < to_char(datum + '1week'::interval,'iw')::int then to_char(datum, 'yyyy iw') else to_char(datum, 'yyyy iw') || ' und erste Woche neues Jahr' end from (select ('2011-12-20'::date + s * '1day'::interval)::date as datum from generate_series(0,20)s) foo;

das kommt der Sache dann näher …

Andreas

entschuldige Andreas, aber
leider ist das nicht, was ich benötige
(bzw die Antwort ist für mich zu schwer :frowning:
(bzw ich sollte genauer sein bei meinen Fragen)

[TABLE=“width: 682, align: left”]
[TR]
[TD]…[/TD]
[TD]…[/TD]
[/TR]
[TR]
[TD]2010 12 KW 51[/TD]
[TD]= count(rows) mit to_char(datum,‘YYYY MM iW’)=‘2010 12 51’[/TD]
[/TR]
[TR]
[TD]2010 12 KW 52 [/TD]
[TD]= count(rows) mit to_char(datum,‘YYYY MM iW’)=‘2010 12 52’ +count(rows) mit to_char(datum,‘YYYY MM iW’)=‘2011 01 52’[/TD]
[/TR]
[TR]
[TD]2011 01 KW 01[/TD]
[TD]= count(rows) mit to_char(datum,‘YYYY MM iW’)=‘2011 01 01’[/TD]
[/TR]
[TR]
[TD]2011 02
KW 02[/TD]
[TD]= count(rows) mit to_char(datum,‘YYYY MM iW’)=‘2011 01 02’[/TD]
[/TR]
[TR]
[TD]…[/TD]
[TD]…[/TD]
[/TR]
[/TABLE]














(PQSQL kann das sicher, aber ich nicht…)

Du willst also gruppieren, und zwar nach der KW, wenn diese aber die erste oder letzte eines Jahres ist dann diese 2 Wochen zusammengefaßt.

Okay, dann nenne ich dies mal KW 0, denn die gibt es ja sonst nicht:

test=*# select datum, to_char(datum, 'yyyy mm iw'), case when to_char(datum, 'iw')::int in (1,52) then 0 else to_char(datum, 'iw')::int end from (select ('2011-12-20'::date + s * '1day'::interval)::date as datum from generate_series(0,20)s) foo;

Reicht das nun als Lösungsansatz?

Ansonsten zeige hier Tabellendefinition und Insert-Befehle (Copy-und-Past - fähig) und Dein Wunschresultat.

Andreas

Meine Aufgabenstellung:
Zaehle Datensaetze, gruppiert nach Woche

Tabelle orders
ID- Int, unique
datum- timestamp without tz

quasi

select count (id) as ZAHL_DIE_RAUSKOMMEN_SOLL from orders 
group by to_char      (XXX)

Woche 52 des Vorjahres enthaelt einige Tage diesen Jahres.

Bei Gruppierung nach Jahr & Woche:

 select count (id) as ZAHL_DIE_RAUSKOMMEN_SOLL , 
to_char(datum,'yyyy iw') as BEREICH
 from orders 
where (datum between '2009-12-25 00:00:00.000000' and '2011-08-25 23:59:59.999999' ) 
 group by  BEREICH 
order by  BEREICH asc

kommt folgende tabelle raus:

ZDRS BEREICH
[TABLE]
[TR]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]308[/RIGHT]
[/TD]
[TD]2009 52[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]301[/RIGHT]
[/TD]
[TD]2009 53[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]784[/RIGHT]
[/TD]
[TD]2010 01[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]648[/RIGHT]
[/TD]
[TD]2010 02[/TD]
[/TR]
[TR]
[TD]…[/TD]
[TD]…[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]4888
[/RIGHT]
[/TD]
[TD]2010 50[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]3990[/RIGHT]
[/TD]
[TD]2010 51[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]3027
[/RIGHT]
[/TD]
[TD]2010 52[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]433
[/RIGHT]
[/TD]
[TD]2010 53
[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]5463[/RIGHT]
[/TD]
[TD]2011 01[/TD]
[/TR]
[TR=“class: data2”]
[TD]4195[/TD]
[TD]2011 02[/TD]
[/TR]
[TR=“class: data1”]
[TD]4442[/TD]
[TD]2011 03[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]…
[/RIGHT]
[/TD]
[TD][RIGHT]…
[/RIGHT]
[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]2524
[/RIGHT]
[/TD]
[TD]2011 52
[/TD]
[/TR]
[/TABLE]









Das hier in rot ist quatsch.(das in grün genauso, aber hier egal)
In Wirklichkeit handelt es sich nicht um die 52. Woche des Jahres 2011,
sondern um die Tage, die von 2010 KW52 rueberhaengen nach 2011.

Anderer Loesungsweg:

 select count (id) as ZAHL_DIE_RAUSKOMMEN_SOLL , 
to_char(datum,'yyyy MM iw') as BEREICH
 from orders 
where ( datum between '2009-12-25 00:00:00.000000' and '2011-08-25 23:59:59.999999' ) 
 group by  BEREICH 
order by  BEREICH asc

ergibt

[TABLE]
[TR]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]308
[/RIGHT]
[/TD]
[TD]2009 12 52[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]301
[/RIGHT]
[/TD]
[TD]2009 12 53[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]784[/RIGHT]
[/TD]
[TD]2010 01 01[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]648[/RIGHT]
[/TD]
[TD]2010 01 02[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]717[/RIGHT]
[/TD]
[TD]2010 01 03[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]727[/RIGHT]
[/TD]
[TD]2010 01 04[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]…
[/RIGHT]
[/TD]
[TD][RIGHT]…
[/RIGHT]
[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]433
[/RIGHT]
[/TD]
[TD]2010 01 53[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]697[/RIGHT]
[/TD]
[TD]2010 02 05[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]777[/RIGHT]
[/TD]
[TD]2010 02 06[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]3990[/RIGHT]
[/TD]
[TD]2010 12 51[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]3027
[/RIGHT]
[/TD]
[TD]2010 12 52[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]5463[/RIGHT]
[/TD]
[TD]2011 01 01[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]4779[/RIGHT]
[/TD]
[TD]2011 01 02[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]5126[/RIGHT]
[/TD]
[TD]2011 01 03[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]5396[/RIGHT]
[/TD]
[TD]2011 01 04[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]6470
[/RIGHT]
[/TD]
[TD]2011 01 05[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]2524
[/RIGHT]
[/TD]
[TD]2011 01 52[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]4660[/RIGHT]
[/TD]
[TD]2011 02 05[/TD]
[/TR]
[/TABLE]








das ist besser, (zumindest die Zahlen werden richtig abgefragt)
allerdings muessen die werte in rot und gruen jeweils addiert werden damit das ganze am Ende so aussieht:

[TABLE]
[TR]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]308
[/RIGHT]
[/TD]
[TD]2009 12 52[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]734
[/RIGHT]
[/TD]
[TD]2009 12 53[/TD]
[TD][/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]784
[/RIGHT]
[/TD]
[TD]2010 01 01[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]648[/RIGHT]
[/TD]
[TD]2010 01 02[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]717[/RIGHT]
[/TD]
[TD]2010 01 03[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]727[/RIGHT]
[/TD]
[TD]2010 01 04[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]…
[/RIGHT]
[/TD]
[TD][RIGHT]…
[/RIGHT]
[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]697[/RIGHT]
[/TD]
[TD]2010 02 05[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]777[/RIGHT]
[/TD]
[TD]2010 02 06[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]3990[/RIGHT]
[/TD]
[TD]2010 12 51[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]5551
[/RIGHT]
[/TD]
[TD]2010 12 52[/TD]
[TD][/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]5463[/RIGHT]
[/TD]
[TD]2011 01 01[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]4779[/RIGHT]
[/TD]
[TD]2011 01 02[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]5126[/RIGHT]
[/TD]
[TD]2011 01 03[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]5396[/RIGHT]
[/TD]
[TD]2011 01 04[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]6470
[/RIGHT]
[/TD]
[TD]2011 01 05[/TD]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]4660[/RIGHT]
[/TD]
[TD]2011 02 05[/TD]
[/TR]
[/TABLE]





also Summe (letzte KW des Vorjahres+Tage die dr�berh�ngen in dieses Jahr)

(nur diese be*** Einteilung in Wochen macht solche Probleme…)
besser?

Also, wenn ich Dich richtig versteh, brauchst eine Gruppierung nach der KW, auch wenn diese über den Jahreswechsel geht. Wie wäre es z.B. mit Jahr und KW zu Begin der KW?

select *,extract(week from datum), to_char(extract(week from datum),'09') || '_' || extract(year from date_trunc('week', datum))::text from (select ('2010-12-20'::date + s * '1day'::interval)::date as datum from generate_series(0,20)s)foo;

Andreas

Also, wenn ich Dich richtig versteh, brauchst eine Gruppierung nach der KW, auch wenn diese über den Jahreswechsel geht. Wie wäre es z.B. mit Jahr und KW zu Begin der KW?

Ja, genau! und diese Gruppierung soll die Anzahl der Datensätze zählen, die da hineinfallen. (count (id)).
Sowie das ganze in ner vernünftigen Reihenfolge ausgeben…

datensätze nach tag, monat, jahr gruppieren ist einfach, nach Woche kapier ich einfach nicht.
Entschuldige bitte, dass ich seit meiner Anmeldung nur 2 Fragen gestellt und nichts beigetragen habe.

Das Du das SQL, was ich gezeigt hab, mal probiert? Es erzeugt Strings, die Deinem Wunsch eigentlich entsprechen sollten.

Andreas

bin am umbauen,habe zuerst geantwortet.

also, folgendes habe ich zusammengeschustert:

select count(id),

to_char(
extract(week from datum),'09')
 || '_' || 
extract(year from date_trunc('week', datum)
)::text as x
from 
(select (submitted_at::date)::date as datum ,id
from 
cart_order s )foo
group by x
order by x

ergibt
[TABLE]
[TR]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]197[/RIGHT]
[/TD]
[TD] 01_2008[/TD]
[/TR]
[TR=“class: data2”]
[TD][RIGHT]784[/RIGHT]
[/TD]
[TD] 01_2010[/TD]
[/TR]
[/TABLE]
(scheint die summe mehrerer ersten wochen zu sein)

kontrolle:

select count (id) as x,
to_char(submitted_at,'YYYY [color=#ff0000]MM[/color] IW') as WANN
 from cart_order
where to_char(submitted_at,'YYYY [color=#ff0000]MM[/color] iW')='2010 01 01'
group by WANN

ergibt
[TABLE=“width: 218”]
[TR]
[/TR]
[TR=“class: data1”]
[TD][RIGHT]422
[/RIGHT]
[/TD]
[TD]2010 01 01[/TD]
[/TR]
[/TABLE]
ohne ‘MM’ kommt hier auch 784 raus, w.o.



das ist natürlich ziemlicher mist.(zumindest das Ergebnis scheint falsch zu sein)
ich weiss nicht, wie ich den stringgenerator als bedingung verwende.
Bitte?

Hrm. Also, ich kenne weder Deine Tabelle noch Deine Daten. Ich habe hier ein kleines SQL (ein einziger Befehl ;-)), welches

a) on-the-fly eine testtabelle erstellt
b) diese ausgibt
c) dann noch die Aggregation vornimmt und ausgibt

Zuerst das SQL:

with t1 as (
  select
    datum,
    menge,
    extract(year from date_trunc('week', datum))::text || '_' || to_char(extract(week from datum),'09') as my_week
  from (
    select ('2010-12-25'::date + s * '1day'::interval)::date as datum,
    substr(regexp_replace(md5(s::text),'[^0-9]','','g'),1,2)::int as menge
  from
    generate_series(0,20) s)
foo)
select
  datum::text,
  menge::text,
  my_week
from t1
union all
  select
    'Datum',
    'Menge',
    'KW'
union all (
  select
    '',
    sum(menge)::text,
    my_week
  from
    t1
  group by
    my_week
  order by
    my_week
)
;

Ausgabe:

test=*# \i sql1.sql
   datum    | menge | my_week
------------+-------+----------
 2010-12-25 | 20    | 2010_ 51
 2010-12-26 | 44    | 2010_ 51
 2010-12-27 | 81    | 2010_ 52
 2010-12-28 | 87    | 2010_ 52
 2010-12-29 | 87    | 2010_ 52
 2010-12-30 | 43    | 2010_ 52
 2010-12-31 | 16    | 2010_ 52
 2011-01-01 | 81    | 2010_ 52
 2011-01-02 | 90    | 2010_ 52
 2011-01-03 | 45    | 2011_ 01
 2011-01-04 | 39    | 2011_ 01
 2011-01-05 | 65    | 2011_ 01
 2011-01-06 | 20    | 2011_ 01
 2011-01-07 | 51    | 2011_ 01
 2011-01-08 | 32    | 2011_ 01
 2011-01-09 | 93    | 2011_ 01
 2011-01-10 | 74    | 2011_ 02
 2011-01-11 | 70    | 2011_ 02
 2011-01-12 | 64    | 2011_ 02
 2011-01-13 | 10    | 2011_ 02
 2011-01-14 | 98    | 2011_ 02
 Datum      | Menge | KW
            | 64    | 2010_ 51
            | 485   | 2010_ 52
            | 345   | 2011_ 01
            | 316   | 2011_ 02
(26 rows)

.oO( so schön kann SQL mit PG sein … )

Ich hoffe, Dir hilft das nun, Dein Problem zu lösen. Falls nicht: komme hierher:

Deutschsprachige PostgreSQL Konferenz

Noch sind Plätze frei, aber Du solltest Dich beeilen …

(Du kannst auch kommen, wenn Dein aktuelles Problem gelöst ist)


Andreas

Heureka!

Es funktioniert endlich!

(Überprüft, rechnet auch richtig)
ist verd… schnell, Anzahl der (Bestellungen aus 5 Jahren) gruppiert nach Woche in 1,5sec…

Ich verstehe schon, dass eine Gruppierung nach Woche
leider die Teile der 52.KW im Jänner 2011 zu denen im Dezember 2011 addiert…

Alerdings! Frage ich mich, wieso das so gelöst werden muss, und es keine funktion dafür gibt…
Ich meine, es ist ja nicht abwegig das man eine Gruppierung nach KW möchte.

Ich hätte den nachfolgenden Code NIE alleine entwickelt.

with t1 as (
  select
    datum,
    menge,
    extract(year from date_trunc('week', datum))::text || '_' || to_char(extract(week from datum),'09') as my_week
  from (
    select [color=#ff0000]SPALTEMITTIMESTAMP[/color]::date as datum,
    count([color=#ff0000]id[/color]) as menge
  from
    [color=#ff0000]MEINETABELLE[/color] s

group by datum
)
foo)
select
  datum::text,
  menge::text,
  my_week
from t1
union all
  select
    'Datum',
    'Menge',
    'KW'
union all (
  select
    '',
    sum(menge)::text,
    my_week
  from
    t1
  group by
    my_week
  order by
    my_week
)
;

Lang lebe Andreas Kretschmer!

PS: Diese Veranstaltung würde ich ja besuchen, wenn
ich nach DE käme
ich nicht gerade in Ausbildung wäre, und somit ab der Begrüssung ws nichts mehr verstehen würde :slight_smile:
ich mich nicht schämen müsste für meine Unkenntniss…

in ein, zwei Jahren, wenn ich verstanden habe, was der Code oben eig. bedeutet, komme ich gerne zu jeder Veranstaltung :slight_smile:

PPS: Solltest du mal in meine Nähe kommen, gehen die Runden auf mich.

bitte als gelöst markieren, danke.

Fein.


PPS: Solltest du mal in meine Nähe kommen, gehen die Runden auf mich.

Ähm, das ist wo?

Andreas

Pressbaum bei Wien :slight_smile:

Vorsichtig mit solchen Äusserungen. Andreas macht das wirklich :wink:

cu tb.

soll mir recht sein, solange ichs rechtzeitig vorher weiss
(so ein, zwei Jahre :slight_smile: )

So, jetzt muss ich nur noch meine beiden Fragen miteinander verbinden, dann hab ich mein Praktikumsprojekt fertig.

Nochmal großes Danke!