Home > database >  For help: order data statistical statements, the group by single table into another table columns
For help: order data statistical statements, the group by single table into another table columns

Time:10-27

requirement:
again! At a time! query out

within 24 hoursTotal number of orders orders status to success,
Orders made the orders status to success,
Order status total number of orders for failure,
Order status order total amount for failure,
Branch has order type field is conditions.

parameter data:
The order table name: order

The fields in the table:
Type (1: taobao, 2: jingdong)
Status (5: to success and failure 7:)
Id (primary key)
PaySum (the actual payment amount)
Topic main success achieved by the state only two queries, a query the total number of orders the orders status to success (of course group by type)

Twice I posted the SQL query, teachers, elders, guard the elder brothers for help:
SELECT
C.t ype,
COUNT (c.i d) AS orderSumNum,
The SUM (c.a. mount_payment) AS orderSaleSumNum
The FROM
G_order AS c
WHERE
C. ` status `=5
GROUP BY
Type

+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
| type | orderSumNum | orderSaleSumNum |
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
30 314363.00 | | | | 1
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
1999.00 | | 2 | 1 |
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +



I want to achieve the effect of so
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
| type | orderSumNum | orderSaleSumNum | orderCancelNum | orderCancelSaleSumNum |
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
| 1 | | | | | 10 314363.00 363.00 30
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
| 2 | | | | | 0 0 1999.00 1
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +

Has the order type to distinguish, and show the order in a line of type status to 5 types of order and the total amount and order for 7 orders and the total amount

CodePudding user response:

 MariaDB [test] & gt; Select * from t6. 
+ - + -- -- -- -- -- - + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
| | id type | status | paySum |
+ - + -- -- -- -- -- - + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
| | 1 | | | 300.00 5
| 2 | 2 | | | 233.00 7
7 | | 3 | 1 | | 400.00
4 | 2 | | | | 200.00 5
5 | 1 | | | | 100.00 5
| | 2 | | | 150.00 5 6
7 | | | | | 90.00 5 1
+ - + -- -- -- -- -- - + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
7 rows in the set (0.00 SEC)
MariaDB [test] & gt; SELECT
- & gt; The type,
- & gt; The COUNT (IF (status=5, NULL, id)) AS orderSumNum,
- & gt; The SUM (the IF (status=5, NULl, paySum)) AS orderSaleSumNum,
- & gt; The COUNT (IF (status=7, NULL, id)) AS orderCancelNum,
- & gt; The SUM (the IF (status=7, NULl, paySum)) AS orderCancelSumNum
- & gt; The FROM t6
- & gt; GROUP BY type.
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
| type | orderSumNum | orderSaleSumNum | orderCancelNum | orderCancelSumNum |
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
| | 1 | | 3 | | 490.00 400.00
| | 1 | 2 | 2 | | 350.00 233.00
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
2 rows in the set (0.00 SEC)

CodePudding user response:

Look at the great god, can you help me?
https://bbs.csdn.net/topics/395716462

The
reference body established under the 1/f, pine and reply:
 MariaDB [test] & gt; Select * from t6. 
+ - + -- -- -- -- -- - + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
| | id type | status | paySum |
+ - + -- -- -- -- -- - + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
| | 1 | | | 300.00 5
| 2 | 2 | | | 233.00 7
7 | | 3 | 1 | | 400.00
4 | 2 | | | | 200.00 5
5 | 1 | | | | 100.00 5
| | 2 | | | 150.00 5 6
7 | | | | | 90.00 5 1
+ - + -- -- -- -- -- - + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
7 rows in the set (0.00 SEC)
MariaDB [test] & gt; SELECT
- & gt; The type,
- & gt; The COUNT (IF (status=5, NULL, id)) AS orderSumNum,
- & gt; The SUM (the IF (status=5, NULl, paySum)) AS orderSaleSumNum,
- & gt; The COUNT (IF (status=7, NULL, id)) AS orderCancelNum,
- & gt; The SUM (the IF (status=7, NULl, paySum)) AS orderCancelSumNum
- & gt; The FROM t6
- & gt; GROUP BY type.
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
| type | orderSumNum | orderSaleSumNum | orderCancelNum | orderCancelSumNum |
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
| | 1 | | 3 | | 490.00 400.00
| | 1 | 2 | 2 | | 350.00 233.00
+ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
2 rows in the set (0.00 SEC)
  • Related