Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   [MySQL] Syntax Hilfe! (https://www.delphipraxis.net/107494-%5Bmysql%5D-syntax-hilfe.html)

Jonas 28. Jan 2008 17:36


[MySQL] Syntax Hilfe!
 
Hallo. Ich verusche zur Zeit den User zu auszulesen, welcher in den letzten 30 Tagen am meisten posts geschrieben hat.

$result = $db->query_first("SELECT COUNT(*) AS cnt FROM bb".$n."_posts WHERE posttime >= ".($posttime[posttime] - 2592000)." AND posttime <= ".$posttime[posttime]);

Dies ist der Anfang schon dafür um heraus zu finden, wieviele Postings in den letzten 30 Tagen getätigt wurden. Nun würde ich aber gerne noch in dieser Abfrage, herausfinden welche UserID die meisten Postings hat.
Das Problem ist ja auch, dass jeder Post theoretisch von der selben Userid geschrieben worden sein kann. Eine Möglichkeit wäre aufjedenfall das $result in eine neue Tabelle hinzuzufügen und es dann erneut aufzulesen. Ich würde es jedoch gerne ohne Tabelle machen, hat jedeman eine Idee? oô

DeddyH 28. Jan 2008 17:45

Re: [MySQL] Syntax Hilfe!
 
Ungetestet und aus dem Bauch heraus:
SQL-Code:
SELECT user_id, COUNT(user_id) AS Anzahl FROM Tabelle
WHERE posttime BETWEEN Start AND Ende
GROUP BY user_id
ORDER BY COUNT(user_id) DESC
LIMIT 0,1

Jonas 28. Jan 2008 18:19

Re: [MySQL] Syntax Hilfe!
 
Huhu, danke scheint zu funktionieren.

Wollte noch fragen wozu das Group By nochmal ist und ob du weisst ob MySQL für beide Counts die tabelle zweimal durchgeht oder nur einmal?

DeddyH 28. Jan 2008 18:47

Re: [MySQL] Syntax Hilfe!
 
Wenn Du Felder und Aggregatfunktionen (Min, Max, Count, Sum, Avg etc.) gleichzeitig abfragst, musst Du dem Server auch sagen, wonach er diese Aggregatfunktionen eigentlich zusammenfassen (= gruppieren) soll. In die Gruppierungsklausel müssen dann alle Nicht-Aggregatfelder aufgenommen werden. Und AFAIK wird die Tabelle nur einmal durchlaufen.

DP-Maintenance 28. Jan 2008 21:25

DP-Maintenance
 
Dieses Thema wurde von "Phoenix" von "Programmieren allgemein" nach "Datenbanken" verschoben.
Geht um SQL, also primär mal ein Datenbankthema


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz