sql - SQL将TY和LY拉到同一行的列中
问题描述
我对 SQL 不是很好,但我们开始吧。我一直在尝试按周提取 sku 计数TY
并将LY
它们放在单独的列中,但在同一行中,具体取决于其他变量......即..
Week TY LY
ABC 6 30 50
ABC 5 100 20
ABC 4 25 25
Select
A.Store,
B.Week_Num
COUNT(A.ABC) AS TY,
COUNT(A.ABC) AS LY
FROM [Table] O360
join Date D on D.Week_num = O360.Week_num
代码在上面进行了简化。挑战在于,我试图呼吁过去的 3 个星期六和每个星期六前 371 天代表LY
......任何帮助都会令人惊叹。
解决方案
我怀疑你想要lag()
. 假设您每周都有数据,那么:
SELECT t.Store, d.Week_Num,
COUNT(*) AS TY,
LAG(COUNT(*), 53) OVER (PARTITION BY t.Store, d.Week_num) AS LY
FROM [Table] t JOIN
Date D
ON D.Week_num = t.Week_num
GROUP BY t.Store, d.Week_Num;
推荐阅读
- python - 将字典作为参数传递给python中的函数,其中参数是函数本身
- python - 如何通过请求将文件发送到 docker 容器中?
- python - 使用python将具有相同标题但不同csv文件名的多个CSV文件合并为一个
- bash - Bash 检查脚本是否使用确切的选项运行
- python - Python:读取 vtk 文件,添加数据集然后写入 vtk
- javascript - 使用 Knex 在运行时创建和运行迁移
- python - Pyglet 获取显示器的分辨率
- grails - GSP 页面中的三元运算符产生错误
- javascript - PHP 隐藏按钮
- python - 如何在 Python 中对文本文件使用 PPMD 压缩?