- 论坛徽章:
- 93
|
这只是select语句,有需要加上create table就可以了:- mysql> select * from test;
- +-----+-----+-------+-------+
- | mm | mn | value | count |
- +-----+-----+-------+-------+
- | aaa | bbb | 1 | 5 |
- | aaa | bbb | 2 | 3 |
- | aaa | bbb | 3 | 2 |
- | ccc | ddd | 1 | 2 |
- | ccc | ddd | 2 | 4 |
- | ccc | ddd | 3 | 4 |
- +-----+-----+-------+-------+
- 6 rows in set
- mysql> select test.*, concat(format(count / s * 100, 2), "%") as percent
- from test
- left join
- (
- select mm, mn, sum(count) as s
- from test
- group by mm, mn
- ) as tmp
- on test.mm = tmp.mm and test.mn = tmp.mn;
- +-----+-----+-------+-------+---------+
- | mm | mn | value | count | percent |
- +-----+-----+-------+-------+---------+
- | aaa | bbb | 1 | 5 | 50.00% |
- | aaa | bbb | 2 | 3 | 30.00% |
- | aaa | bbb | 3 | 2 | 20.00% |
- | ccc | ddd | 1 | 2 | 20.00% |
- | ccc | ddd | 2 | 4 | 40.00% |
- | ccc | ddd | 3 | 4 | 40.00% |
- +-----+-----+-------+-------+---------+
- 6 rows in set
复制代码 |
|