表名字是:test_tb_grade
脚本:
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (1, '张三', '2017-02-01', '成功');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (2, '张三', '2017-02-01', '成功');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (3, '张三', '2017-01-01', '失败');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (4, '李四', '2017-01-01', '成功');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (5, '李四', '2017-03-01', '失败');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (6, '李四', '2017-02-01', '成功');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (7, '王五', '2017-01-01', '成功');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (8, '王五', '2017-03-01', '失败');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (9, '王五', '2017-03-01', '失败');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (10, '张三', '2017-02-01', '成功');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (11, '张三', '2017-02-01', '失败');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (12, '张三', '2017-01-01', '无效');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (13, '李四', '2017-01-01', '无效');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (14, '李四', '2017-03-01', '无效');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (15, '李四', '2017-01-01', '成功');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (16, '李四', '2017-03-01', '成功');
INSERT INTO test_tb_grade
(id
, USER_NAME
, REQUEST_DATE
, CODE
) VALUES (17, '王五', '2017-03-01', '无效');
求得结果如下:
请问sql 可以实现吗
分享一篇我写的mysql动态行转列的sql
https://blog.csdn.net/weixin_43151418/article/details/124841383
---普通行转列
SELECT user_name,
sum(
CASE
WHEN code='无效'
THEN 1
ELSE 0
END) AS "无效",
sum(
CASE
WHEN code='成功'
THEN 1
ELSE 0
END) AS "成功",
sum(
CASE
WHEN code='失败'
THEN 1
ELSE 0
END) AS "失败"
FROM test_tb_grade
GROUP BY user_name