SQL 编写例子
1,去除一个表的重复记录:
DELETE FROM enterprise_user WHERE id NOT IN ( SELECT t FROM ( SELECT min(id) AS t FROM enterprise_user GROUP BY NAME ) AS T )
至于有一个“冗余”的 select 语句的原因是:MySQL 不允许在修改表的时候查表,而多了一个 select 语句就创建了临时表,就不是修改表的时候查表;
2,行列转换
链接:http://blog.chinaunix.net/uid-7692530-id-2567582.html;
SELECT IFNULL(c1, 'total') AS total, Sum(IF(c2 = 'B1', c3, 0)) AS B1, Sum(IF(c2 = 'B2', c3, 0)) AS B2, Sum(IF(c2 = 'B3', c3, 0)) AS B3, Sum(IF(c2 = 'B4', c3, 0)) AS B4, Sum(IF(c2 = 'total', c3, 0)) AS TOTAL FROM ( SELECT c1, IFNULL(c2, 'total') AS c2, SUM(c3) AS c3 FROM tx GROUP BY c1, c2 WITH ROLLUP HAVING c1 IS NOT NULL ) AS A GROUP BY c1 WITH ROLLUP
这里要注意,查询出来的不是一定要是表里面的数据,可以数据运算得到的结果;
还有,有理解分组查询,分组查询就是要配合合计函数使用,不然没有意义;分组查询的过程是这样的,先分组,然后对每组都进行运算,然后把重复的组去掉;
浙公网安备 33010602011771号