任何人都可以帮助我处理将列转换为行然后相应地查找数据的查询。从列表中获取数据并将列作为MYSQL中的行
问题在下面。我已经尝试了一个查询,将列名获取到行中,但是我无法获取值或者有任何想法找出列3和列4的位置。我是SQL中的一个新的布尔。有人可以帮我从这里出去吗。我从朋友那里听到提示支点,当我浏览我发现在MYSQL
Input Table:
E1 E2 E3 E4 E5 E6
Null 1234 234 12 A B
123 Null Null Null 12 B
Null Null Null Null Null Null
123 2 1 A 1 2
Output Table:
C1 C2 Count TotalC percent
E1 123 2 2 1
E2 1234 1 2 0.5
E2 2 1 2 0.5
E3 234 1 2 0.5
E3 1 1 2 0.5
E4 12 1 2 0.5
E4 A 1 2 0.5
E5 A 1 3 0.3
E5 12 1 3 0.3
E5 1 1 3 0.3
E6 B 2 3 0.6
E6 2 1 3 0.3
的问题的解释不支持PIVOT:
- C1是输入表的列名。
- C2是这些列中的数据。
- 计数是每列中类似项目和单数的数量。
- TotalC是总非空值的数量。
- %是count/totalc。
查询我的工作:SELECT (COLUMN_NAME)AS Column1 FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'inputtable';
注:查询MYSQL中。
*为什么*你想要做到这一点?你能提供更多的上下文吗?机会可能是这个任务在数据库层之外更好地执行,或者你最好使用不同的模式。 – eggyal
@eggyal:生病得到一个包含该样本数据的文件作为输入,我必须运行查询才能使数据在另一个表中保留。我可以通过“数据库层以外”了解你的意思吗? –
“*在数据库层以外*”,我的意思是在您的应用程序代码中执行此数据操作,而不是在SQL中。 – eggyal