2016-03-05 42 views

回答

0

請檢查下面的SQL SELECT語句

;with cte as (
    select 
     a.id, a.tax, a.idprice, b.price, 
     sum(tax) over (partition by a.idprice) sum_tax 
    from tableA a 
    inner join tableB b 
    on a.idprice = b.idprice 
) 
select * from cte 
where sum_tax < price 

首先,我用了一個SQL CTE (Common Table Expression) query 我用CTE,因爲我在WHERE子句中使用的列求和。 您也可以在子查詢中放置相同的SELECT語句而不是SQL CTE表達式

上述查詢有一個有趣的事情,也許您會第一次看到它;我使用SUM()聚合函數和分區依據子句 就像SQL Count() Over (Partition By)子句一樣,partition by使您能夠對共享相同值的行應用聚合函數

+0

謝謝,但我可以按idprice分組,idprice不重複 –

+0

請不要鼓勵壞的問題,而是與OP一起修復帖子,然後用答案回報,回答LQ帖子對網站不利。 –

相關問題