php - 如何在此 SQL 查询中返回 SUM(摘要)

标签 php mysql sql

我想直接从 sql 查询中随机获取 SUM,但是如何从这个查询中返回持续时间字段的总和: 那是表格:

 CREATE TABLE IF NOT EXISTS `video_clips` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(155) NOT NULL,
      `duration` int(11) NOT NULL,
      `rank` int(11) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

    INSERT INTO `video_clips` (`id`, `name`, `duration`, `rank`) VALUES
    (1, 'clip1', 3, 1),
    (2, 'clip2', 5, '3'),
    (3, 'clip3', 8, '2'),
    (4, 'clip4', 6, '1');

这就是代码:

$time=16;
while($sum=$time) {
$result=mysql_query("(SELECT duration FROM table where rank=1 ORDER BY rand() LIMIT 1) UNION ALL
(SELECT duration FROM table where rank=2 ORDER BY rand() LIMIT 1) UNION ALL
(SELECT duration FROM table where rank=3 ORDER BY rand() LIMIT 1)" );

$sum=??????
}

或者是否可以将结果添加到别名表,然后从该别名表返回 SUM,类似于:

$time=16;
    while($sum=$time) {
    $result=mysql_query("(SELECT duration FROM table where rank=1 ORDER BY rand() LIMIT 1) UNION ALL
    (SELECT duration FROM table where rank=2 ORDER BY rand() LIMIT 1) UNION ALL
    (SELECT duration FROM table where rank=3 ORDER BY rand() LIMIT 1) AS table1");

    $sum=mysql_query("SELECT SUM(duration) FROM table1");
    }

这可能吗?我试过了,但没有用。

最佳答案

就像@Dagon 在评论中暗示的那样:

SELECT rank, SUM(duration) 
FROM   video_clips
GROUP BY rank WITH ROLLUP

这会给你这个结果:

+------+---------------+
| rank | SUM(duration) |
+------+---------------+
|    1 |             9 |
|    2 |             8 |
|    3 |             5 |
| NULL |            22 |
+------+---------------+

按列(排名)分组的 NULL 表示该行是一个“ super 总计”。 可以进行更复杂的分组,有关更多信息,请参阅:

http://dev.mysql.com/doc/refman/5.5/en/group-by-modifiers.html

关于php - 如何在此 SQL 查询中返回 SUM(摘要),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9523252/

相关文章:

php - 数据库连接不上

mysql - 从命令行获取 mysql 列

php - 从 wpdb 查询后动态设置选择列表的选定值

MySQL/ASP 参数化以防止注入(inject)

php - 找不到图像时的图像高度和宽度

php - 我无法让我的 snmp 在 Linux 机器上工作

javascript - 如何在 laravel 中为 highcharts 做一个 if else 语句

php - MySQL - 在文本字段中搜索单词,显示整行?

MySQL - 通过查询值不同的共享值从两行中选择

php - 在 jwt-auth laravel 中获取自定义声明