gpt4 book ai didi

MySQL 查询不返回 DISTINCT 或 TIMESTAMPDIFF

转载 作者:行者123 更新时间:2023-11-29 18:39:21 25 4
gpt4 key购买 nike

前言:我是 MySQL 的新手。

我的目标是生成一个显示三列的表格:user_id、事件发生的天数(称为 eventDays)以及自事件发生以来的天数第一个事件(称之为totalDays)。

通过生成此表,我将能够生成一个显示 eventDays:totalDays 数量的比率(这将在 Excel 中完成)。

以下是我的查询。 它不会产生错误,但输出错误:虽然 user_id 按预期重新调整,eventDays 始终返回值“1”并且对于每个给定的 user_idtotalDays 返回值“0”。

再次感谢您:n00b 警报...

SELECT t1.user_id, COUNT(DISTINCT YEAR(t1.time_stamp), MONTH(t1.time_stamp), DAY(t1.time_stamp)) AS 'Number of unique days where an Event occured', TIMESTAMPDIFF(DAY, t1.time_stamp, t2.time_stamp) AS 'Total days since First Event'
FROM (
SELECT *
FROM first.table
GROUP BY user_id
ORDER BY time_stamp ASC) AS t1
INNER JOIN (
SELECT *
FROM second_table
GROUP BY user_id
ORDER BY time_stamp DESC) AS t2
ON t1.user_id = t2.user_id
GROUP BY t1.user_id
ORDER BY COUNT(DISTINCT YEAR(t1.time_stamp),MONTH(t1.time_stamp), DAY(t1.time_stamp)) DESC;

最佳答案

当没有您查询的数据示例时,真的很难在这方面为您提供帮助。如果你能回来的话我可能会提供更多帮助。无论如何,请参见下文:

“...事件发生的天数(将此事件称为 eventDays)...”

-- 我相信您滥用了 day() function 。 day() 将返回该月中第几天的 1 到 31 之间的整数。看起来查询中生成的标志字段的出现次数的 count() 或 sum() 会给你想要的。

“……以及自第一个事件以来的天数(称为totalDays)……”

——这个很难说,因为你正确地使用了这个函数。第一个想法是也许一个日期小于另一个日期并且它不计算负值或绝对值?我不记得了,mysql 不是我常用的 RDBMS。

关于MySQL 查询不返回 DISTINCT 或 TIMESTAMPDIFF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046038/

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