SQL

时间:2015-07-01 13:18:30

标签: mysql sql pivot-table

我有一个MySQL表,如下所示:

JID    SKID  VALUE
--------------------
alpha    a    6
alpha    b    3
alpha    c    2
beta     a    3
beta     b    5
gamma    a    1
gamma    c    3
...

(注意没有gamma / b)

我还有一个看起来像这样的测试数据库:

SKID   VALUE
a      3
b      4
c      2

我要做的是对第一个表中的每个JID执行计算,该计算是使用的函数的总和(第一个表中的每个SKID的VALUE和来自第二个表的每个SKID的VALUE)

因此,结果表将JID / SCORE作为其标题,其中SCORE是一个复杂(但可描述)的计算。

伪代码:

for each SKID in JID {
      TEMP = calculation(table1.Value, table2.value)
      SCORE = SCORE + TEMP
} 
RETURN JID, SCORE

我知道我可以用另一种语言执行此操作,但我更喜欢直接在SQL中进行计算,但我不知道该怎么做,或者甚至可能。

在SQL中执行此操作或将其发送到python会更快吗?还有更好的语言吗?

1 个答案:

答案 0 :(得分:0)

我得到了它的工作:

select jid, sum(score) 
from(
    select t1.jid, t2.ivalue*t1.ivalue as score 
    from t1 
    join t2  on t1.skid = t2.skid
    ) 
as subtable group by jid