目前我有以下数据结构,列出运动结果:
table_org:
--------------------------------
Name Club Place Irrelevant_data
--------------------------------
John ABC 1 xyz
John ABC 2 abc
John ABC 1 def
Jane DEF 1 abc
Jane DEF 3 ref
Mark ABC 2 stu
目前,这是从SQLite Manager
网页抓取脚本生成的csv
文件导入python 2.7.3
。行数为1000。
我想在新表中获得以下数据结构:
table_new:
-----------------------------
Name Club Gold Silver Bronze
-----------------------------
John ABC 2 1 0
Jane DEF 1 0 1
Mark ABC 0 1 0
这个操作叫做什么,我该如何实现呢?
我的工具本身是SQLite Manager
或python
个模块。
在我的研究过程中,我发现也许应该以某种方式使用COUNT
方法,但我找不到相关的例子。请注意,我是数据库中的新手。
答案 0 :(得分:1)
你可以generate a medal count table这样:
SELECT Name, Club,
SUM(CASE WHEN Place = 1 THEN 1 ELSE 0 END) AS Gold,
SUM(CASE WHEN Place = 2 THEN 1 ELSE 0 END) AS Silver,
SUM(CASE WHEN Place = 3 THEN 1 ELSE 0 END) AS Bronze
FROM tbl
GROUP BY Name, Club
产生
+------+------+------+--------+--------+
| Name | Club | Gold | Silver | Bronze |
+------+------+------+--------+--------+
| Jane | DEF | 1 | 0 | 1 |
| John | ABC | 2 | 1 | 0 |
| Mark | ABC | 0 | 1 | 0 |
+------+------+------+--------+--------+