PHP MYSQL PDO SUM of columns

前端 未结 3 948
生来不讨喜
生来不讨喜 2021-01-13 03:48

I\'m new to php and I\'ve searched for the past hour and read all the documentation I could find and nothing is helping. I have a table that has a bunch of rows of data. I\'

3条回答
  •  深忆病人
    2021-01-13 03:57

    You can use SUM() without explicitely grouping your rows because if you use a group function in a statement containing no GROUP BY clause, it is equivalent to grouping on all rows.

    If however you want to use the SUM() function for something slightly more complicated you have to group your rows so that the sum can operate on what you want.

    If you want to get multiple sums in a single statement, for example to get the distance for all users at once, you need to group the rows explicitely:

    $res1 = $db->prepare("
        SELECT
            SUM(distance) AS distance,
            user_id
        FROM trip_logs WHERE status = '2'
        GROUP BY user_id
    ");
    $res1->execute();
    while ($row = $res1->fetch(PDO::FETCH_ASSOC))
    {
        echo "user $row[user_id] has runned $row[distance] km.\n";
    }
    

    This will return the sum of distances by user, not for all users at once.

提交回复
热议问题