【发布时间】:2013-08-13 16:29:05
【问题描述】:
我的 SQL 查询得到以下结果:
EventID P_Num PN_NameCount1 PN_Name
ABC-I-10942683 1089213 1 Company 1
ABC-I-10942683 1326624 8 Company 2
我仍在学习 SQL 中的此功能,需要一些帮助,Pivot 在这种情况下不起作用。
我尝试了几种不同的方法来尝试执行此操作,但无法创建所需的结果:
EventID P_Num1 PNC1 PN_Name PNC_Num2 PNC2 PN_Name
ABC-I-10942683 1089213 1 Company 11326624 8 Company 2
EventID 将根据公司的不同事件而变化,因为EventID 是基于公司发生事件的特定日期。
这只是我正在处理的 500K+ 行数据的一个示例。这将进入一个临时表,以便与所需的其他各种数据连接。
我试过这个没有成功:
SELECT Key,
MAX(Col1) AS Col1,
MAX(Col2) AS Col2,
MAX(Col3) AS Col3
FROM table
GROUP BY Key
【问题讨论】:
-
如果同一个 EventID 有 3 个或 4 个或 X 怎么办?
-
我认为您可以直接在 MySQL 中解决此问题的唯一方法是创建一个以动态方式构建 SQL 字符串的脚本,然后将该 SQL 字符串与准备好的语句一起使用。我认为这可以帮助你:buysql.com/mysql/14-how-to-automate-pivot-tables.html
-
@BLAM...对于 3 或 4,我也需要展示,但我只需要帮助才能到达那里。一旦我能够将 1 和 2 分开,我总是可以添加更多列。
-
@Prix...我尝试了这种结构,但没有任何积极的结果。 select Key, max(Col1) as Col1, max(Col2) as Col2, max(Col3) as Col3 from table group by Key
-
@Barrabka...给出的链接无效。还 PIVOTS 虽然它们很好,但当我写出它们时它们将不起作用。 (不是公认的功能)。