如何用计数值和伪值聚合联合表?

时间:2019-06-24 06:52:18

标签: sql postgresql

我在两张桌子中计数一些东西,想要一个汇总结果(一行)。为此,我编写了此SQL:

@Override
protected void directionDownScrolling(View recyclerView) {
    // Calculate ActionBar height
    TypedValue tv = new TypedValue();
    int actionBarHeight = recyclerView.getContext().getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true) ?
            TypedValue.complexToDimensionPixelSize(tv.data, recyclerView.getContext().getResources().getDisplayMetrics()) :
            (int) recyclerView.getContext().getResources().getDimension(R.dimen.dimen_recycler_view_spacing);
    recyclerView.setPadding(0, actionBarHeight, 0, 0);
}

1)结果是2行,这不是该列总计的一个值。  为什么此查询未汇总联合的相同列值?应该怎么写?

2)当我尝试对“(Amount_New1 + Amount_New2)Amount_New”求和(并将子查询列名称更改为amount_new1 / amount_new2)时,它都不起作用。为什么?

1 个答案:

答案 0 :(得分:1)

如果您要返回一行,从概念上讲代表整个联合表的汇总,请删除GROUP BY

SELECT  SUM(Amount_New) Amount_New,
        SUM(Import_Dropout) Import_Dropout,
        SUM(Import) Import,
        SUM(Processing) Processing,
        SUM(Processing_Dropout) Processing_Dropout,
        SUM(Matching) Matching,
        SUM(Matching_Dropout) Matching_Dropout,
        SUM(Export) Export,
        SUM(Exported) Exported,
        SUM(Rejected) Rejected,
        SUM(AmountSubTotal) AmountSubTotal,
        SUM(AmountTotal) AmountTotal
FROM
(
    -- ... your current query
) SK;

您也可能希望删除计算的UnionOrder列,因为不需要对单行结果集进行排序。