我有一个长/高格式的mysql表中的数据(如下所述),并希望将其转换为宽格式.我可以只使用sql吗?
最简单的解释一个例子.假设您有关于M个国家(国家,关键,价值)的信息,N个密钥(例如,密钥可以是收入,政治领导者,地区,大陆等)
Long format has 3 columns: country, key, value
- M*N rows.
e.g.
'USA', 'President', 'Obama'
...
'USA', 'Currency', 'Dollar'
Wide format has N=16 columns: county, key1, ..., keyN
- M rows
example:
country, President, ... , Currency
'USA', 'Obama', ... , 'Dollar'
Run Code Online (Sandbox Code Playgroud)
SQL中是否有一种方法可以创建一个包含宽格式数据的新表?
select distinct key from table;
Run Code Online (Sandbox Code Playgroud)
//这会给我所有的钥匙.
1)如何使用这些关键元素创建表格?
2)如何填写表格值?
我很确定我可以用任何脚本语言(我喜欢python)来做这个,但是想知道在mysql中是否有一种简单的方法可以做到这一点.许多统计软件包(如R和STATA)都内置了此命令,因为它经常被使用.
======
更清楚的是,这是一个简单案例的理想输入输出:
输入:
country attrName attrValue key (these are column names)
US President Obama 2
US Currency Dollar 3
China President Hu 4
China Currency Yuan …Run Code Online (Sandbox Code Playgroud) 我想知道是否有一种规范的方法可以在SQLite中将数据从长格式转换为宽格式(这种操作通常是在关系数据库的域中吗?).我试着按照MySQL的这个例子,但我猜SQLite没有相同的IF构造......谢谢!