当返回这段代码时,我没有像我想的那样得到12行并且为什么,我做错了什么,当没有添加百分比时有12行显示。
SELECT invoice_due_date, invoice_total,SUM(invoice_total)
* .10 / invoice_total,SUM(invoice_total)
* .20 / invoice_total
FROM invoices
# ROWS: 12
WHERE invoice_total >= 500 OR invoice_total <= 10000
ORDER BY invoice_due_date DESC
答案 0 :(得分:1)
您只获得一行,因为您使用的是没有group by
的聚合函数。因此,它汇总了invoice_total列的所有行。
我想,你想要做的是:
SELECT
invoice_due_date,
invoice_total,
sum_invoice_total * .10 / invoice_total,
sum_invoice_total * .20 / invoice_total
FROM invoices
CROSS JOIN (SELECT SUM(invoice_total) FROM invoices WHERE invoice_total >= 500 OR invoice_total <= 10000) sum_invoice_total
WHERE invoice_total >= 500 OR invoice_total <= 10000
ORDER BY invoice_due_date DESC