PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   sum/count/distinct (http://www.selfphp.de/forum/showthread.php?t=8579)

joker 05.09.2004 16:47:48

sum/count/distinct
 
Hallo, ich versuche gerade aus der tabelle:

userid | gameid | team | points
3_____ | 1_____ | xxx_ | 3_____
4_____ | 1_____ | xxx_ | 2_____
12____ | 1_____ | yyy_ | 8_____
32____ | 2_____ | abc_ | 3_____
4_____ | 2_____ | bgf_ | 1_____
3_____ | 2_____ | abc_ | 5_____

nach folgenden kreterien auszulesen:
aus gameid[1] die anzahl der dazugehörigen userids(count) und punkte(sum) jeweils noch durch die 2 teams zu trennen, also folgende ausgabe möchte ich dan haben:
gewählt: gameid 1
team xxx: useridsgesammt(2), pointsgesammt(5)
team yyy: useridsgesammt(1), pointsgesammt(8)

aber ich scheitere noch bei der trennung der teams, aus einer spalte
also ich schaff nur folgende ausgabe: useridsgesammt: 3, pointsgesammt:13

code bisher:
PHP-Code:

    $query mysql_query("SELECT
                              userid,
                              gameid,
                              team,
                              points,
                          Count(userid) AS anz_userids,
                          Sum(points) AS sum_points
                          FROM
                              wb_tips
                          GROUP by
                              userid;"
) or die(mysql_error());
    while(
$f mysql_fetch_array($query)){
        echo 
" Users ".$f[anz_userids]." , Points  ".$f["sum_points"]."<br />n";
    } 


Marilu 05.09.2004 16:58:02

Lege doch mal "zum Spielen" einen Dump der Tabelle hierhin (bin zu faul, das alles einzugeben).

joker 05.09.2004 17:12:31

Code:

#
# Tabellenstruktur für Tabelle `wb_tips`
#

DROP TABLE IF EXISTS `wb_tips`;
CREATE TABLE `wb_tips` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `userid` int(11) unsigned NOT NULL default '0',
  `gameid` int(11) unsigned NOT NULL default '0',
  `team` varchar(100) NOT NULL default '',
  `points` int(11) unsigned NOT NULL default '0',
  `time` int(11) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=7 ;

#
# Daten für Tabelle `wb_tips`
#

INSERT INTO `wb_tips` (`id`, `userid`, `gameid`, `team`, `points`, `time`) VALUES (1, 3, 1, 'xxx', 3, 0),
(2, 4, 1, 'xxx', 2, 0),
(3, 12, 1, 'yyy', 8, 0),
(4, 32, 2, 'abc', 3, 0),
(5, 4, 2, 'bgf', 1, 0),
(6, 3, 2, 'abc', 5, 0);


Marilu 05.09.2004 17:43:29

Versuch's mal so:

PHP-Code:

$query "
SELECT 
    userid, gameid, team, points, 
    COUNT(userid) AS anz_userids,
    SUM(points) AS sum_points
FROM wb_tips
WHERE gameid = '1'
GROUP BY team
ORDER BY team"

$result mysql_query($query);

while(
$f mysql_fetch_array($result)){
    echo 
" Team " $f['team'] . " - Anzahl: " $f['anz_userids'] . " , Points  " $f['sum_points'] . "<br />n";




Alle Zeitangaben in WEZ +2. Es ist jetzt 16:30:33 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.