gpt4 book ai didi

mysql - 自动计算表中的范围(mysql)

转载 作者:行者123 更新时间:2023-11-29 12:25:34 24 4
gpt4 key购买 nike

例如,我有一个表1:

      +------+----------+                                                         
| num | duration |
+------+----------+
| 10 | 0 |
| 15 | 1 |
| 5 | 2 |
| 7 | 3 |
| 12 | 4 |
| 13 | 5 |
| 3 | 6 |
+------+----------+

在此表中,“duration”的值范围为 0 到 6。“num”表示有多少个流的 session 持续时间为 0 或 1 或 2 等。例如,第一行表示有 10 个流,它们的 session 持续时间为 0。第二行表示有 15 个流,它们的 session 持续时间为 1。现在,我想计算有多少流的 session 持续时间大于0、大于1、大于2、大于3等。

select *
from
( select sum(num) as totalnum,duration
from table1
where duration >=
(
select duration from table1
)
)as a;

但是 mysql 提到“子查询返回超过 1 行”。我想要得到这样的表格:

+-----------+----------+
| totalnum | duration |
+-----------+----------+
| 65 | 0 |
| 55 | 1 |
| 40 | 2 |
| 35 | 3 |
| 28 | 4 |
| 16 | 5 |
| 3 | 6 |
+-----------+----------+

该表的含义是:例如第一行表示有 65 个 session 持续时间大于 0 的流。第二行表示有 55 个 session 持续时间大于 1 的流。我该怎么办?

最佳答案

尝试将表连接到自身,其中连接条件是持续时间大于或等于正在处理的 FROM 条目的持续时间的条目:

SELECT SUM(T1up.num) AS totalnum, T1.duration
FROM table1 AS T1
LEFT JOIN table1 AS T1up
ON T1up.duration>=T1.duration
GROUP BY T1.duration;

关于mysql - 自动计算表中的范围(mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28379326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com