SUM值按列分组,但是不可以“聚合”吗?

时间:2019-04-23 09:49:08

标签: sql group-by amazon-redshift

我想总结根据两个不同的值达到阈值的次数:日期和项目。

Redshift给我一个错误,要求在group by中添加更多的列(我不希望在group by中使用:“列必须出现在group by子句中或在聚合函数中使用”)。

将会出现的另一个问题是代码将汇总我的列,并且我想复制SUM编号。

我有什么

|------------|--------|------------|
| item_type  | date   |thresh_rchd |
|------------|--------|------------|
|    baby    |monday  |      2     |
|------------|--------|------------|
|    tom     |monday  |      6     |
|------------|--------|------------|
|    baby    |monday  |      8     |
|------------|--------|------------|
|    baby    |tuesday |      4     |
|------------|--------|------------|

我想要什么:

|------------|--------|------------|-------------|
| item_type  | date   |thresh_rchd |total thresh |
|------------|--------|------------|-------------|
|    baby    |monday  |      2     |     10      |
|------------|--------|------------|-------------|
|    tom     |monday  |      6     |      6      |
|------------|--------|------------|-------------|
|    baby    |monday  |      8     |     10      |
|------------|--------|------------|-------------|
|    baby    |tuesday |      4     |      4      |
|------------|--------|------------|-------------|

2 个答案:

答案 0 :(得分:2)

您可以使用窗口功能尝试以下操作

if(isset($name)) {
    Mage::log('check passed'); //This just write in logs
    continue; // or something else
} else if (!isset($name)) {
    // some code
}

答案 1 :(得分:0)

select t1.item_type,t1.date,t1.thresh_rchd,t2.total
from <table> t1
inner join
(
select item_type,date,sum(thresh_rchd) total from <table>
group by item_type,date) t2
on t1.item_type=t2.item_type
and t1.date=t2.date