mysql – 带sum或列的sql查询

我有一个表color_balls条目如下

=====================================================
Name    Red_Ball    Green_Ball  Yellow_Ball     
=====================================================
John       27           56          66
Mathew     37           45          15
=====================================================

我想编写一个sql或mysql查询来获取如下输出.

=====================================
Color_of_Balls      No_of_balls
=====================================
Red_Ball            64
Green_Ball          101
Yellow_Ball         81
=====================================

解决方法:

这种类型的查询称为UNPIVOT,遗憾的是,MySQL本身不支持这种查询.但是,您可以使用UNION模拟这个:

SELECT 'Red_Ball' AS Color_of_Balls, SUM(Red_Ball) as No_of_Balls
FROM color_balls
UNION ALL
SELECT 'Green_Ball', SUM(Green_Ball)
FROM color_balls
UNION ALL
SELECT 'Yellow_Ball', SUM(Yellow_Ball)
FROM color_balls

Oracle10g本身也不支持,尽管有this workaround.

上一篇:python – 在SqlAlchemy中反映db时缺少外键关系


下一篇:java – Oracle – 连接与spring框架的池