google-bigquery - BiqQuery 在基于日期排序时不考虑月份
问题描述
我正在使用以下查询来每天卸载应用程序并根据日期对它们进行排序,但结果排序数据并未根据月份进行排序,仅考虑日期。使用的查询:
SELECT FORMAT_DATE('%d-%m-%Y', PARSE_DATE('%Y%m%d', event_date)) AS dates,
COUNT(DISTINCT user_pseudo_id) AS Unistalls
FROM `applied-buckeye-626.analytics_153768669.events_*`
WHERE event_name='app_remove'
AND _TABLE_SUFFIX > '20210828'
GROUP BY dates
ORDER BY dates DESC
LIMIT 1000
结果:
[
{
"dates": "31-08-2021",
"Unistalls": "5"
},
{
"dates": "30-08-2021",
"Unistalls": "7"
},
{
"dates": "29-08-2021",
"Unistalls": "6"
},
{
"dates": "07-09-2021",
"Unistalls": "3"
},
{
"dates": "06-09-2021",
"Unistalls": "5"
},
{
"dates": "05-09-2021",
"Unistalls": "4"
},
{
"dates": "04-09-2021",
"Unistalls": "7"
},
{
"dates": "03-09-2021",
"Unistalls": "3"
},
{
"dates": "02-09-2021",
"Unistalls": "2"
},
{
"dates": "01-09-2021",
"Unistalls": "4"
}
]
解决方案
您正在按字符串排序!不是约会。您可以通过使用聚合函数来解决此问题:
ORDER BY MIN(event_date) DESC
或以 YYYY-MM-DD 格式保留日期。这种格式有很多优点,包括正确排序。
推荐阅读
- java - 对于 x.715 和 x.915 使用 half_even 的 java 舍入错误
- ios - 随机复制单元格
- swift - Swift + Realm:如何从 collection.find 的范围内更改外部变量
- javascript - 无法读取未定义的属性(读取“parseComponent”)
- html - React 组件中的 HTML 表格行没有响应我的 CSS 样式以限制内容的高度
- java - 为什么Java找不到包?
- r - 使用 grep 将一列中的变量与另一列中的文本字符串匹配
- javascript - 如何在 React JS 中正确导入 firebase 模块以初始化应用程序
- vue.js - 评估函数内部的计算属性
- vert.x - 我应该为 Vertx 应用程序中的对象创建静态 Vertx 实例吗?