Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查询每周新用户的#-如何按年/周订购?_Mysql_Sql_Mariadb - Fatal编程技术网

Mysql 查询每周新用户的#-如何按年/周订购?

Mysql 查询每周新用户的#-如何按年/周订购?,mysql,sql,mariadb,Mysql,Sql,Mariadb,我正在编写一个MySQL查询,输出每周创建的新用户数 我的用户表是: id | created_at SELECT YEAR(created_at) AS Year, DATE_FORMAT(created_at, '%b %e') AS Week, COUNT(*) AS total FROM users GROUP BY Year, Week; 我的查询: id | created_at SELECT YEAR(created_at) AS Year, DATE_FORMAT(crea

我正在编写一个MySQL查询,输出每周创建的新用户数

我的用户表是:

id | created_at
SELECT YEAR(created_at) AS Year, DATE_FORMAT(created_at, '%b %e') AS Week, COUNT(*) AS total
FROM users
GROUP BY Year, Week;
我的查询:

id | created_at
SELECT YEAR(created_at) AS Year, DATE_FORMAT(created_at, '%b %e') AS Week, COUNT(*) AS total
FROM users
GROUP BY Year, Week;
问题:

id | created_at
SELECT YEAR(created_at) AS Year, DATE_FORMAT(created_at, '%b %e') AS Week, COUNT(*) AS total
FROM users
GROUP BY Year, Week;
  • 年份:我希望最近的一年是在顶部,目前最老的一年是在产量的顶部
  • 周:周列不根据日历排序。例如,最近的记录显示:
    2019 | 5月9日| 100

我希望对年和周进行排序。

我想您会发现函数
YEARWEEK()
不仅对分组很有帮助,而且对排序也很有帮助

另外,您使用的
DATE\u FORMAT()
看起来不正确,因为您正在输出
%e
,这是一个月中的一天,但您是按周分组的

SELECT DATE_FORMAT(created_at, '%Y %b %v') AS date, COUNT(*) AS total
FROM users
GROUP BY YEARWEEK(created_at)
ORDER BY YEARWEEK(created_at) DESC;

我想您会发现函数
YEARWEEK()
不仅对分组很有帮助,而且对排序也很有帮助

另外,您使用的
DATE\u FORMAT()
看起来不正确,因为您正在输出
%e
,这是一个月中的一天,但您是按周分组的

SELECT DATE_FORMAT(created_at, '%Y %b %v') AS date, COUNT(*) AS total
FROM users
GROUP BY YEARWEEK(created_at)
ORDER BY YEARWEEK(created_at) DESC;


您查看过ORDER BY子句吗?您不是按周分组,而是按天分组。在一年内,您想要最近的一周是第一周还是最后一周?@Barmar BY year,最近的第一周。。。谢谢,我知道你想要的是最近一年的第一个星期,但是你想要的是最近一周还是一年中的第一个星期?你有没有研究过ORDER BY子句?你不是按周分组,而是按天分组。在一年中,你想要的是最近一周的第一个星期还是最后一个星期?@Barmar BY year,最近的第一个星期。。。谢谢我知道你想要的是最近一年的第一个星期,但是你想要的是最近一周还是一年的第一个星期?谢谢,但是这一周的输出很有意思,就像这样:201928,201927,201926有没有办法使输出更友好?你到底想要什么输出<代码>?您不能按照原始查询包含日期,因为您选择一周中七天中的哪一天?谢谢,但行不是按周分组的,他们有一些奇怪的订单:2019年7月28日2019年7月27日2019年6月26日2019年6月25日2019年6月24日2019年6月23日2019年6月22日2019年5月21日2019年5月20日2019年5月18日2019年4月17日2019年4月16日2019年4月14日2019年3月13日2019年3月12日2019年3月11日2019年3月10日2019年3月09日2019年2月2019年1月3日2019年1月2日2019年1月1日2018年12月52日2018年12月51日2018年12月50日2018年12月49日2018年12月48日2018年11月46日2018年11月46日2018年11月44日2018年10月43日2018年10月43日输出的
。因此,一年中的第27周和第28周是在7月,第23周、第24周、第25周和第26周是在6月,等等。谢谢,但这一周的输出很有意思,就像这样:201928、201927、201926有没有办法使输出更友好?你到底想要什么输出<代码>?您不能按照原始查询包含日期,因为您选择一周中七天中的哪一天?谢谢,但行不是按周分组的,他们有一些奇怪的订单:2019年7月28日2019年7月27日2019年6月26日2019年6月25日2019年6月24日2019年6月23日2019年6月22日2019年5月21日2019年5月20日2019年5月18日2019年4月17日2019年4月16日2019年4月14日2019年3月13日2019年3月12日2019年3月11日2019年3月10日2019年3月09日2019年2月2019年1月3日2019年1月2日2019年1月1日2018年12月52日2018年12月51日2018年12月50日2018年12月49日2018年12月48日2018年11月46日2018年11月46日2018年11月44日2018年10月43日2018年10月43日输出的
。所以一年中的第27周和第28周在7月,第23周、第24周、第25周和第26周在6月,等等。。。