在单个表格中,我有3列。首先定义扇区,第二个计数和第三个数量。我需要以下列方式提取5列数据。第一栏部门。第二个和第三个包含的值是小于计数的数量,第三个和第四个显示的数量是特定部门中的数量。我的查询应该怎么样?
样本数据 - 第一部分的4行数据。
function upArray(arr) {
for (var i = 0, len = arr.length; i < len; i++) {
var num = arr[i];
if (num > 9 || num <= 0) {
var x = null;
return x;
}
}
{
var toNum = parseInt(arr.join('')) + 1;
arr = toNum.toString().split('').map(Number);
return arr;
}
}
结果应为
>>> rdd = sc.parallelize([1,2])
>>> sorted(rdd.cartesian(rdd).collect())
[(1, 1), (1, 2), (2, 1), (2, 2)]
答案 0 :(得分:0)
您可以使用GROUP BY
和SUM()
汇总函数以及CASE
语句来完成此操作,例如
SELECT sector,
SUM(case when count > amount then count else 0 end) as count1,
SUM(case when amount < count then amount else 0 end) as amount1,
SUM(case when count < amount then count else 0 end) as count2,
SUM(case when amount > count then amount else 0 end) as amount2
FROM mytable
GROUP BY sector;