2016-03-28 69 views
0
id order_id coupon_code coupon_amount 
1 100  abc123 50 
2 101  abc123 50 
3 102  bca412 100 

和我的查詢是獲取行值組由

SELECT `coupon_code`, `order_id`, 
     SUM(`coupon_amount`) AS `total`, 
     COUNT(`id`) as `totRow` 
FROM `orders` 
WHERE `coupon_code`!='' 
GROUP BY `coupon_code` 

和我的輸出應該是

coupon code Usage Total Order Id(s) 
abc123   2 100 100, 101 
bca412   1 100 102 

如何獲得由逗號單查詢分隔的所有訂單ID?

感謝

+0

'SELECT GROUP_CONCAT(DISTINCT ORDER_ID)作爲order_ids,...' –

+0

我不知道MySQL的,但在Oracle中是可以做到的與LISTAGG,如果有幫助:http://tech.pranavmaniar.in/oracle-aggregate-string-into-csv/ –

回答

2

您可以使用GROUP_CONCAT

SELECT `coupon_code`, 
     GROUP_CONCAT(`order_id`) as order_ids, 
     SUM(`coupon_amount`) AS `total`, 
     COUNT(`id`) as `totRow` 
FROM `orders` 
WHERE `coupon_code`!='' 
GROUP BY `coupon_code` 
+0

謝謝,它的工作很好 – MGM