Mysql SQL获取每天的注册用户总数
你能帮我构造一个查询吗。场景是这样的,我想获得每天注册用户的总价值。假设您的注册时间戳存储在创建日期时间字段和名为say user的表中:Mysql SQL获取每天的注册用户总数,mysql,sql,pivot,Mysql,Sql,Pivot,你能帮我构造一个查询吗。场景是这样的,我想获得每天注册用户的总价值。假设您的注册时间戳存储在创建日期时间字段和名为say user的表中: Select count(*) from tableName Where registered = true Group by Date SELECT created_at,COUNT(*) as `total registration` FROM `user` GROUP BY (DATE(`user`.`created_at`)) 前
Select count(*)
from tableName
Where registered = true
Group by Date
SELECT created_at,COUNT(*) as `total registration` FROM `user` GROUP BY (DATE(`user`.`created_at`))
前面的答案既不包括
where
部分,也不输出dayname
这应该既能做到这一点,又能产生您想要的结果:
create table #data (
reg_id int,
reg_email nvarchar(255),
reg_date datetimeoffset(7)
)
insert into #data(reg_id, reg_email, reg_date)
VALUES
(1, 'a', '2018-10-01'),
(2, 'b', '2018-10-01'),
(3, 'c', '2018-10-02'),
(4, 'd', '2018-10-03'),
(5, 'e', '2018-10-01'),
(6, 'f', '2018-10-02'),
(7, 'g', '2018-10-04'),
(8, 'h', '2018-10-05'),
(9, 'i', '2018-10-05'),
(10, 'j', '2018-10-06')
SELECT count(*), datename(dw, reg_date) from #data
where datepart(week, reg_date) = 40
group by reg_date
drop table #data
假设您使用的是
sql server
大于或等于2008 我终于得到了今天和过去7天的正确数据。请参考下面的查询
SELECT
a.JourneyName,
a.BonusName,
a.Status,
a."Timestamp",
a.MID,
COUNT(CASE WHEN DATEDIFF(DD, a."Timestamp", GETDATE()) = 0 THEN 1 ELSE NULL END) as "Day_1",
COUNT(CASE WHEN DATEDIFF(DD, a."Timestamp", GETDATE()) = 1 THEN 1 ELSE NULL END) as "Day_2",
COUNT(CASE WHEN DATEDIFF(DD, a."Timestamp", GETDATE()) = 2 THEN 1 ELSE NULL END) as "Day_3",
COUNT(CASE WHEN DATEDIFF(DD, a."Timestamp", GETDATE()) = 3 THEN 1 ELSE NULL END) as "Day_4",
COUNT(CASE WHEN DATEDIFF(DD, a."Timestamp", GETDATE()) = 4 THEN 1 ELSE NULL END) as "Day_5",
COUNT(CASE WHEN DATEDIFF(DD, a."Timestamp", GETDATE()) = 5 THEN 1 ELSE NULL END) as "Day_6",
COUNT(CASE WHEN DATEDIFF(DD, a."Timestamp", GETDATE()) = 6 THEN 1 ELSE NULL END) as "Day_7"
FROM
TableName a
WHERE
a."Timestamp" >= DATEADD(DD, -7, GETDATE())
AND a."Timestamp" <= GETDATE()
GROUP BY``
a.JourneyName, a.BonusName, a.Status, a."Timestamp", a.MID
选择
a、 JourneyName,
a、 BonuName,
a、 地位,
a、 “时间戳”,
a、 中,
计数(当DATEDIFF(DD,a.“Timestamp”,GETDATE())=0,则为1,否则为空结束)为“Day_1”,
将DATEDIFF(DD,a.“Timestamp”,GETDATE())=1,然后1,否则为空结束)计数为“Day_2”,
将DATEDIFF(DD,a.“Timestamp”,GETDATE())=2,然后1,否则为空结束)计数为“Day_3”,
将DATEDIFF(DD,a.“Timestamp”,GETDATE())=3,然后1,否则为空结束)计数为“Day_4”,
将DATEDIFF(DD,a.“Timestamp”,GETDATE())=4,然后1,否则为空结束)计数为“Day_5”,
将DATEDIFF(DD,a.“Timestamp”,GETDATE())=5,然后1,否则为空结束)计数为“Day_6”,
计数(DATEDIFF(DD,a.“Timestamp”,GETDATE())=6,则为1,否则为空结束)为“Day_7”
从…起
表名a
哪里
a、 “Timestamp”>=DATEADD(DD,-7,GETDATE())
和一个“时间戳”提供您的预期输出和样本数据您的样本数据在哪里?您好!我已经更新了我的帖子。我包括样本和输出数据,担心输出是错误的,我希望它一天一天,也许一周。示例本周一至周日您使用的产品是什么?“SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品postgresql
,oracle
,sqlserver
,db2
。。。