我有这个记录
atmno atmid netpay
------------------------------ ----------- --------
1234123412345 2 18426.68
NULL NULL 527.19
NULL NULL 4852.08
1234123412345 1 4611.70
NULL NULL 1531.10
我只希望对atmno
中具有值的行进行分组。对于其他专栏,我将采用atmid的最小值和netpay的总和。所需的输出应如下所示。
atmno atmid netpay
------------------------------ ----------- ---------
1234123412345 1 23038.38
NULL NULL 527.19
NULL NULL 4852.08
NULL NULL 1531.10
这是我到目前为止所做的。
SELECT atmno, MIN(atmid), SUM(netpay)
FROM table
GROUP BY atmno
您可能知道此查询还将对空值进行分组。我的目标是仅通过一个查询即可获得所需的结果。帮助将不胜感激。
答案 0 :(得分:4)
您可以使用2个单独的选择查询,然后使用UNION ALL将结果合并为一个
SELECT atmno, MIN(atmid), SUM(netpay)
FROM table
WHERE atmno IS NOT NULL
GROUP BY atmno
UNION ALL
SELECT atmno, atmid, netpay
FROM table
WHERE atmno IS NULL
答案 1 :(得分:0)
Select atmno, atmid, netpay
from table t1, (select atmno, min(atmid), netpay
from table where atmno is not null
group by atmid) t2
where t2.atmno =t1.atmno and t2.atmid = t1.atmid;
order by case when atmno is null then 1 else 0,
atmid
答案 2 :(得分:0)
尝试一下
def create_puzzle(rows, cols):
c = []
r = []
for x in range(cols):
c.append(False)
for y in range(rows):
r.append(c)
return LightsOutPuzzle(r)