SQL:按日期排序,仅给出月份和年份 - 全组日期
SQL: Order by date, only month and year given - Full Group on
我有一个 SQL 数据库,它设置为全组开启模式。我的目标是获取每个月的行数 (ID)。这就是为什么我说 Group By Datum
。由于全组模式,我不能简单地说 Order By created_at
。因为我只选择了%m.%Y
。所以我只能使用 Datum
这与我的月份和年份有关。
我已经尝试连接这些值,例如 CONCAT('DATE_FORMAT(created_at, '%Y-%m'), "-01 00:00:00")
,但这也不起作用...即使我将其转换为 UNIX 时间戳,它也不起作用:UNIX_TIMESTAMP(CONCAT('DATE_FORMAT(created_at, '%Y-%m'), "-01 00:00:00"))
我什至试过这个:
Order By Year(DATE_FORMAT(created_at, '%Y')), Month DATE_FORMAT(created_at, '%m')
但它也不起作用...
如何在不更改 Select
值的情况下按月和年对结果进行排序?
到目前为止,这是我实际的 SQL 查询。也不工作..我几乎在 1 小时后试图找到解决方案...
SELECT COUNT(ID) AS Anzahl, DATE_FORMAT(created_at, '%m.%Y') AS Datum
FROM leads
WHERE created_at >= '2015-01-01' AND created_at <= '2018-01-01'
AND shopID = 4184
GROUP BY Datum
ORDER BY UNIX_TIMESTAMP(STR_TO_DATE(Datum, '%Y-%m-01 00:00:00'))
如有任何帮助,我将不胜感激!不,我无法更改 Select
值或关闭 full_group_mode
.
排序方式 DATE_FORMAT(created_at, '%Y'), date_format(created_at, '%M') desc
这将按年升序然后按月降序对结果进行排序。
看看这个 SQL Fiddle 以查看使用 MySql 5.6
的查询
以下将先按年再按月升序排列:
order by substring(datum,4,4), substring(datum,1,2)
sqlfiddle:http://sqlfiddle.com/#!9/16fab4/3
我有一个 SQL 数据库,它设置为全组开启模式。我的目标是获取每个月的行数 (ID)。这就是为什么我说 Group By Datum
。由于全组模式,我不能简单地说 Order By created_at
。因为我只选择了%m.%Y
。所以我只能使用 Datum
这与我的月份和年份有关。
我已经尝试连接这些值,例如 CONCAT('DATE_FORMAT(created_at, '%Y-%m'), "-01 00:00:00")
,但这也不起作用...即使我将其转换为 UNIX 时间戳,它也不起作用:UNIX_TIMESTAMP(CONCAT('DATE_FORMAT(created_at, '%Y-%m'), "-01 00:00:00"))
我什至试过这个:
Order By Year(DATE_FORMAT(created_at, '%Y')), Month DATE_FORMAT(created_at, '%m')
但它也不起作用...
如何在不更改 Select
值的情况下按月和年对结果进行排序?
到目前为止,这是我实际的 SQL 查询。也不工作..我几乎在 1 小时后试图找到解决方案...
SELECT COUNT(ID) AS Anzahl, DATE_FORMAT(created_at, '%m.%Y') AS Datum
FROM leads
WHERE created_at >= '2015-01-01' AND created_at <= '2018-01-01'
AND shopID = 4184
GROUP BY Datum
ORDER BY UNIX_TIMESTAMP(STR_TO_DATE(Datum, '%Y-%m-01 00:00:00'))
如有任何帮助,我将不胜感激!不,我无法更改 Select
值或关闭 full_group_mode
.
排序方式 DATE_FORMAT(created_at, '%Y'), date_format(created_at, '%M') desc
这将按年升序然后按月降序对结果进行排序。
看看这个 SQL Fiddle 以查看使用 MySql 5.6
的查询以下将先按年再按月升序排列:
order by substring(datum,4,4), substring(datum,1,2)
sqlfiddle:http://sqlfiddle.com/#!9/16fab4/3