我有一个与我之前的问题类似的问题 - Pivot Tables PHP/MySQL
在该查询中,我知道将调用行标题,并且只需要动态创建列标题。然而,现在我也不知道行标题。
所以我有一个疑问
select eng, count, weekof from dbo.RPT_ENG_WEEK ('2013-03-03', '2013-03-16', '2013-03-03', '2013-03-16') order by eng, weekof asc
Run Code Online (Sandbox Code Playgroud)
返回以下数据:
eng count weekof
James 11 2013-03-03
James 12 2013-03-10
Bill 2 2013-03-03
Gary 15 2013-03-03
Gary 5 2013-03-10
Fred 3 2013-03-03
Fred 2 2013-03-10
Run Code Online (Sandbox Code Playgroud)
所以我想把它变成每个工程一行和每周一列,如下所示
week: 2013-03-03 2013-03-10
James: 11 12
Bill: 2 0
Gary: 15 5
Fred: 3 2
Run Code Online (Sandbox Code Playgroud)
如果我将 eng 的名称作为静态行放入,那么我在上一个问题中得到的答案会很有魅力,但是它可能会返回 100 个左右的 eng,而且真的不想手动保留更新名单!
我可能可以通过 SQL 函数中的游标来解决这个问题,但是有更好的方法吗?
当分区大小之间的比率为 5:n-5 或类似 1:19 时,您如何找到快速排序的复杂性?我不太明白在这些情况下如何计算算法的复杂性。
我有一个表作为 MarketOutput 有 20 列
[Region] [LOB] [GWP 2013] [GWP 2014] [LR 2013] [LR 2014]
-------------------------------------------------------------
North Workers 38902.50 37,972,404 89 82
Run Code Online (Sandbox Code Playgroud)
我想将列动态更改为行。Region 和 LOB 是固定列,[GWP 2013], [GWP 2014], [LR 2013], [LR 2014] 是动态列。
明年他们将是[GWP 2015],[LR 2015]
我想取消旋转列并将 [GWP 2014] 拆分为两列 [GWP], [2014]。
输出应该是这样的
Region [LOB] [Metrics] [Year] [Value]
--------------------------------------------------
North Workers GWP 2013 38902.50
North Workers GWP 2014 37,972,404
North Workers LR 2013 89
North Workers LR 2014 82
Run Code Online (Sandbox Code Playgroud)
你能建议如何做到吗?
我是在 SQL Server 中进行透视的新手
我还想每次使用动态列表将输出插入到新表中
我已经成功地为自己构建了一个漂亮的小 T-SQL 语句,它将调度信息转换为每月的列。
SELECT *
FROM
(
SELECT
t1.customer_code,
t1.part_number,
LEFT(DATENAME(month, [formatted_date]),3) as [Month],
t1.quantity as [quantity] FROM FORECAST_VIEW as t1
where
quantity <> 0
and formatted_date >= DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
) as p
pivot
(
sum(quantity)
for [Month] in (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)
) as p
order by customer_code, part_number
Run Code Online (Sandbox Code Playgroud)
这会产生一个带有列的输出
customer_code, part_number, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
Run Code Online (Sandbox Code Playgroud)
并汇总每个月所需的 part_number 数量。
这工作正常并且在报告中产生奇迹,但是如果我可以让月份列从当前月份开始并按顺序排列 …
我正在编写一个查询,其中表末尾应该有一个总行,该行给出closed, open,的总和reassigned columns。
我能够做一个支点,但无法知道如何在最后放置一行。我在网上搜索过,但大多找到了创建列和行或仅列的解决方案。我喜欢开发,对数据库不太了解。下面是我的支点。请让我知道我该怎么做。
select *
from
(
select [case owner] as AGENT, [final status]
from StatusTable
) src
pivot
(
count([final status])
for [final status] in ([CLOSED], [OPEN], [REASSIGNED])
) piv
Run Code Online (Sandbox Code Playgroud)
当前输出如下图
在这里我想要一个额外的行,如下所示。
TOTAL | 2 | 8 | 2
Run Code Online (Sandbox Code Playgroud) 我有一张桌子,它是这样的:
ID item_type date
1 apple 2016-12-01
2 banana 2016-12-01
3 banana 2016-12-01
Run Code Online (Sandbox Code Playgroud)
等等。我需要做的是获得一个输出表,其中月份为行,item_type 为列,以及每个组合的条目数,使其看起来像
month apple banana
dec 1 2
Run Code Online (Sandbox Code Playgroud)
等等......我已经尝试date_trunc过按月分组,但这似乎是根据日期而不是月份来计算的!而且我根本不知道如何进行多重分组。
我想将切片器应用于我的数据透视表,以便用户可以轻松过滤,但是每当我选择某些内容时,行高都会发生变化。我没有选中“更新时自动调整列宽”,并选中“更新时保留单元格格式”。
任何想法将不胜感激!
运行代码时,我面临以下错误。错误 - 列标签“Avg_Threat_Score”不是唯一的。
我正在创建一个数据透视表并希望将值从高到低排序。
pt = df.pivot_table(index = 'User Name',values = ['Threat Score', 'Score'],
aggfunc = {
'Threat Score': np.mean,
'Score' :[np.mean, lambda x: len(x.dropna())]
},
margins = False)
new_col =['User Name Count', 'AVG_TH_Score', 'Avg_Threat_Score']
pt.columns = [new_col]
#befor this code is working, after that now working
df = df.reindex(pt.sort_values
(by = 'Avg_Threat_Score',ascending=False).index)
Run Code Online (Sandbox Code Playgroud)
需要对列“Avg_Threat_Score”的值进行高低排序
我正在尝试实现下面链接的这个确切解决方案,但似乎 GROUP_CONCAT_UNQUOTED 不再是有效的 BQ 函数。有没有在 2020 年有效的解决方案?
ps我会在原帖上发表评论,但显然我的声誉还不够高......
我想显示来自 JSON 对象的字段。目前,所有字段仅从对象的第一级加载。下面给出了示例 JSON 文件。
"DATE": "2021/01/02",
"VOUCHERNUMBER": "GST/20-21/3833",
"VOUCHERTYPENAME": "Udaan Sales",
"INVENTORYENTRIES": [
{
"STOCKITEMNAME": [
"Printed Knitted H/S Tunic BT17 M"
],
"AMOUNT": [
"703.25",
"703.25",
"703.25"
],
},
{
"STOCKITEMNAME": [
"Printed Knitted H/S Tunic BT17 L"
],
"RATE": [
"147.44/Pcs"
],
"AMOUNT": [
"737.20",
"737.20",
"737.20"
]
} ~~~
I want to show ** STOCKITEMNAME** fields. Is it possible?
Run Code Online (Sandbox Code Playgroud) pivot ×10
sql ×3
sql-server ×3
pivot-table ×2
algorithm ×1
analysis ×1
crosstab ×1
database ×1
excel ×1
json ×1
pandas ×1
php ×1
postgresql ×1
python ×1
quicksort ×1
slicers ×1
sorting ×1
t-sql ×1
unpivot ×1
webdatarocks ×1