gpt4 book ai didi

mysql - 每天计算和总结不同的值

转载 作者:行者123 更新时间:2023-11-30 22:08:44 25 4
gpt4 key购买 nike

如何计算每天的不同值?以及每天的总值(value)?在一个请求中。

key1 | key2 | tdate | tview
1 | 20161123454647 | 2016-11-23 11:11:11 | view1
2 | 20161123454648 | 2016-11-23 11:11:11 | view2
3 | 20161122454649 |2016-11-22 11:11:11 | view2
4 | 20161122454650 |2016-11-22 11:11:11 | view1
5 | 20161122454653 |2016-11-22 11:11:11 | view2
6 | 20161122454661 |2016-11-22 11:11:11 | view2
7 | 20161121454622 |2016-11-21 11:11:11 | view3
8 | 20161121454679 |2016-11-21 11:11:11 | view1
9 | 20161121454684 |2016-11-21 11:11:11 | view3

我发现要计算每天 tview 的所有值的总和:

SELECT DATE(tdate) Date, COUNT(DISTINCT tview) totalOfViews FROM mytable GROUP BY DATE(tdate)

我有一个键 (key2),它是日期和渲染编号的串联,因为我不想在同一天配置两个相同的渲染。

当我插入带有“INSERT ON DUPLICATE key2 UPDATE”的新渲染时,这对我来说是最容易的。我只更新一个请求的 View 数。我不知道 'INSET ON DUPLICATE' <2 differents keys> UPDATE :newview。也很有趣的问题 ;-)

日期是我表中的时间戳。

我使用 php 7、MySQL 和 PDO 来做语句。

其中一个有趣的输出:

day | totaView1 | totalView2 | totalView3 | totalView1+view2 |totalOfViews
2016-11-23 | 1 | 1 | 0 | 2 | 2
2016-11-22 | 1 | 3 | 0 | 4 | 4
2016-11-21 | 1 | 0 | 2 | 1 | 3

在我找到请求日期范围并比较每天的数字 View 变化之后。示例:

Day (currentmonth) | totaView1 | totalView1 (lastmonth) |totalOfViews

难道“alter table”能做到这样的结果吗?

最佳答案

一种可能性是使用条件聚合:

SELECT DATE(tdate) AS day,
SUM(CASE WHEN tview = 'view1' THEN 1 ELSE 0 END) AS totaView1,
SUM(CASE WHEN tview = 'view2' THEN 1 ELSE 0 END) AS totaView2,
SUM(CASE WHEN tview = 'view3' THEN 1 ELSE 0 END) AS totaView3,
SUM(CASE WHEN tview = 'view1' OR tview = 'view2'
THEN 1 ELSE 0 END) AS totaView1Or2,
COUNT(*) AS totalOfViews
FROM mytable
GROUP BY DATE(tdate)

关于mysql - 每天计算和总结不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40817893/

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