表是这种
name region model
A1 B1 C1
A2 B2 C2
A3 B3 C3
A4 B1 C2
A5 B2 C1
A6 B1 C1
A7 B1 C3
然后查询出来的是这种region total C1 C2 C3
B1 3 2 1 1根据region字段查询,然后在total后面动态显示查出来在region字段中有值的model并统计数量
name region model
A1 B1 C1
A2 B2 C2
A3 B3 C3
A4 B1 C2
A5 B2 C1
A6 B1 C1
A7 B1 C3
然后查询出来的是这种region total C1 C2 C3
B1 3 2 1 1根据region字段查询,然后在total后面动态显示查出来在region字段中有值的model并统计数量
count(*) total,
sum(if(model = 'C1', 1, 0)) C1,
sum(if(model = 'C2', 1, 0)) C2,
sum(if(model = 'C3', 1, 0)) C3
from a
group by region;
MySQL交叉表
在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?96198现整理解法如下:数据样本: create table tx( id int primary key, c1 c...
+------+----------+---------------------------------------------------------------------------------------------------------------------------------+
| id | count(*) | GROUP_CONCAT(score) |
+------+----------+---------------------------------------------------------------------------------------------------------------------------------+
| 1 | 40 | 100,99,99,98,97,100,99,99,98,97,100,99,99,98,97,100,99,99,98,97,100,99,99,98,97,100,99,99,98,97,100,99,99,98,97,100,99,99,98,97 |
+------+----------+---------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)