获取同一桌/列上不同购买类型的计数和总和

时间:2018-04-26 10:06:11

标签: mysql

我有一个"交易"包含以下列的表

ID    TIMESTAMP    USER ID    DESCRIPTION    AMOUNT    REF_ID    TYPE

说明栏包含用于举例的付款平台" STRIPE-ch_1745"。我们目前在参考文献中描述了4个平台,如上例所示。我想要的是获得支付平台,平台处理的总金额和交易数量。喜欢这个

Platform    Amount    Count
Stripe      100,000   78
iOS         78,000    50

我目前的代码只为我提供了一个平台的这些值,我无法正确构建这个值以获得所需的结果。我假设我需要嵌套的select语句,所以我以这种方式编写代码

SELECT txn_count, sum
FROM
(SELECT count(*) AS txn_count, sum(`transaction`.`amount`) AS `sum`
FROM `transaction`
WHERE (`transaction`.`type` = 'credit'
   AND (`transaction`.`description` like 'stripe%')
   AND str_to_date(concat(date_format(`transaction`.`timestamp`, '%Y-%m'), '-01'), '%Y-%m-%d') = str_to_date(concat(date_format(now(), '%Y-%m'), '-01'), '%Y-%m-%d'))) t1

现在给我的是

Txn Count    Sum
311          501,000

希望获得有关如何获得预期表格的一些帮助

1 个答案:

答案 0 :(得分:1)

试试这个:(编辑删除参考部分,假设参考总是由平台用' - '分隔)

SELECT 
LEFT(t.description,LOCATE('-',t.description) - 1) as 'Platform',
SUM(t.amount) as 'Amount',
COUNT(*) as 'Count'
FROM transaction t
GROUP BY Platform