小编fli*_*p99的帖子

使用CASE和GROUP BY进行数据透视的动态替代方法

我有一个看起来像这样的表:

id    feh    bar
1     10     A
2     20     A
3      3     B
4      4     B
5      5     C
6      6     D
7      7     D
8      8     D
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样:

bar  val1   val2   val3
A     10     20 
B      3      4 
C      5        
D      6      7     8
Run Code Online (Sandbox Code Playgroud)

我有这个查询,它执行此操作:

SELECT bar, 
   MAX(CASE WHEN abc."row" = 1 THEN feh ELSE NULL END) AS "val1",
   MAX(CASE WHEN abc."row" = 2 THEN feh ELSE NULL END) AS "val2",
   MAX(CASE WHEN abc."row" = 3 THEN feh ELSE …
Run Code Online (Sandbox Code Playgroud)

sql postgresql pivot crosstab window-functions

26
推荐指数
4
解决办法
3万
查看次数

条件的放置是否重要?

以下2个查询给出了不同的结果:

SELECT A.source_code, B.quantity
FROM Table_A AS A
LEFT JOIN Table_B AS B ON B.merchant_id = A.merchant_id
   AND B.agent_id = A.agent_id
   AND B.default IS NULL
WHERE A.month='2011-10-01'
   AND B.type='600'
Run Code Online (Sandbox Code Playgroud)

SELECT A.source_code, B.quantity
FROM Table_A AS A
LEFT JOIN Table_B AS B ON B.merchant_id = A.merchant_id
   AND B.agent_id = A.agent_id
WHERE A.month='2011-10-01'
   AND B.type='600'
   AND B.default IS NULL
Run Code Online (Sandbox Code Playgroud)

我假设条件对两个查询执行相同的操作,仅在不同的时间.我错过了什么吗?

sql postgresql

6
推荐指数
1
解决办法
276
查看次数

如何根据来自不同哈希的键对哈希值求和?

不知道这是否是这个问题的正确标题,因为我是Perl的新手,但我有一个感兴趣的2列文本文件:

AB      Volume
100     280
137     250
150     375
100     100
100     600
137     200
Run Code Online (Sandbox Code Playgroud)

我想总结基于AB#的卷,结果是输出

AB     Instances     Volume
100    3              980
137    2              450
150    1              375
Run Code Online (Sandbox Code Playgroud)

我到目前为止所做的只是在输出文件中显示不同的AB,但我很难得到体积计数的总和.

$isAB{$AB} = 1;
$isVolume{$Volume} =1;
$numAB{$AB}++;

print "AB\tInstances\tVolume\n";
for $AB (sort {$a<=>$b;} keys %numAB) {
        print "$AB\t$numAB{$AB}\n";
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!谢谢

perl

3
推荐指数
1
解决办法
2224
查看次数

标签 统计

postgresql ×2

sql ×2

crosstab ×1

perl ×1

pivot ×1

window-functions ×1