Tradebit Service schrieb:

> da Du ein "where a.Day=b.Day" machst und darueber hinaus
> noch ein count(*) und ein group, ist es klar, dass Du nur
> subsets erhaelst.

Genau davor hatte Dirk mich ja gewarnt. Bei den ganz großen Abfragen, wo
die Zahlen in die hunderttausende war das kein Problem, aber wir gehen
hier mittlerweile so ins Detail, daß es eben doch vorkommen kann, daß
eine Seite Null ist. (Es geht um eine Datenbank, wo für alle User
gespeichert ist, welche Mails an den jeweiligen User als Spam bewertet
wurden und welche nicht. Im Moment sind das mal eben 12 Millionen
Datensätze.)

> wenn ich das richtig interpretiere, dann vielleicht so:
> 
> SELECT Day, Accepted, Rejected from
> 
>   ((select date(datetime) as Day, count(*) as Accepted, 0 as Rejected
>               from mails where accepted=1 group by Day)
>  UNION
> 
>   select date(datetime) as Day, 0 as Accepted, count(*) as Rejected
>               from mails where accepted=0 group by Day))
> 
> ...
> 
> Aber ich weiss nicht, ob das UNION (welches 2 selects aneinander haengt)
> das erlaubt! Schnell ist es auf keinen Fall :-)

select dummy.* from
(
select date(datetime) as Day, count(*) as Accepted, 0 as Rejected
        from mails
        where username='$1' and accepted=1
        group by Day
union
select date(datetime) as Day, 0 as Accepted, count(*) as Rejected
        from mails
        where username='$1' and accepted=0
        group by Day
) as dummy
order by Day desc limit 1,14;

Da passiert genau das, was ich nicht will, nämlich zwei Zeilen pro Tag.
Je eine pro Select, und das per UNION aneinandergehängt. Sieht man auch
sehr schön, wenn man am Ende das ORDER mal wegläßt.

+------------+----------+----------+
| Day        | Accepted | Rejected |
+------------+----------+----------+
| 2006-11-27 |        0 |        9 |
| 2006-11-26 |        7 |        0 |
| 2006-11-26 |        0 |       81 |
| 2006-11-25 |        0 |       78 |
| 2006-11-25 |       27 |        0 |
| 2006-11-24 |        0 |       64 |
| 2006-11-24 |       15 |        0 |
| 2006-11-23 |       23 |        0 |
| 2006-11-23 |        0 |       66 |
| 2006-11-22 |       20 |        0 |
| 2006-11-22 |        0 |       68 |
| 2006-11-21 |       16 |        0 |
| 2006-11-21 |        0 |      191 |
| 2006-11-20 |       32 |        0 |
+------------+----------+----------+

Jetzt muß ich das nur noch irgendwie tageweise zusammenbringen... Okay,
das ließe sich auch per Perl-Script erledigen, aber der sportliche
Ehrgeiz ist dann ja doch irgendwie vorhanden.... ;-)

-martin


-- 
Schmitt Systemberatung                                       Linux/UNIX
Giessener Str. 18                                     Internet/Intranet
35415 Pohlheim/Germany                            E-Mail Infrastructure
http://www.scsy.de                                   Antispam/Antivirus

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an