sql - SQL Server 中的透视日期
问题描述
我在 SQL Server 中有以下代码,通过Code
和 by生成用户计数Date
:
SELECT
code, CONVERT(DATE, created_at) Date, COUNT(account_id) UserCount
FROM
Code_Table
GROUP BY
code, CONVERT(DATE, created_at)
这只是通过每个唯一代码和日期组合生成用户计数。我正在尝试使用 Pivot 函数来获取:
- 第一列中的唯一代码列表
- 每个唯一日期的列,从第二列开始
- 与填充表格的日期代码组合关联的每个用户的计数。
我遇到的一个问题是:我想将此查询设置为每天自动更新,这将每天添加一个包含最近日期的附加列。我发现的唯一枢轴函数需要声明从行创建的列数。
我知道这在带有 Pivot 的 Excel 中会更容易完成,但我目前没有这个选项。
任何建议将不胜感激!
解决方案
你需要一个动态的支点来完成这个。您需要一个明确的列列表是正确的——因此您将查询您的表并实际生成 SQL 语法作为结果,然后使用 sp_executesql 执行该语法。
您可以在 Stack Overflow: SQL Server 动态 PIVOT 查询上找到它?
一句警告:这通常不是最佳实践。您将无法对此结果集执行任何过滤或任何与日期相关的逻辑。无论您使用什么前端报告软件,您都可能希望在其中实现从旋转获得的类似矩阵/交叉表的行为。
推荐阅读
- firebase - 如何从 firebase 托管子目录指向 Wordpress 博客
- python - 圆角窗 Tkinter
- r - updateTabsetPanel 和 updateSelectINput 与 htmlOutput
- entity-framework-core - 将 Identity Server 4 和 Entity Framework Core 集成在一起时出现表冲突
- eclipse - 有没有办法使用 pom.xml 设置 lombok?
- python - Google Apps Script API - 我的 Python 脚本执行 Apps Script 函数的权限
- javascript - 在变量中使用基于选中的复选框的值
- kubernetes - 就绪探测失败时的 Kubernetes 自定义操作
- json - 请问我该如何解决这个TypeError?
- datetime - HubL / Twig:比较两个unix时间戳