【问题标题】:SQL Inner Join with data modification to fill empty columnsSQL Inner Join 与数据修改以填充空列
【发布时间】:2012-08-04 01:38:51
【问题描述】:

我正在考虑两个表中的以下列,其中 clicks_ 列是空的,应该填充从 mwhen 和 mwho 列中学习的数据。加入应该在 mwho 和 user_id 上。

学生

user_id、clicks_jan、clicks_feb、clicks_mar、clicks_apr

用法

mwho,mwhen

我的问题:

  1. 我是否需要一个 select 语句,或者我可以立即从“更新学生”转移到设置 (...) 以更新列?
  2. 当我要求它同时从两个表中提取信息以执行计算时,SQL 会抱怨 - 至少,当我声明“来自学生,使用情况”时它会抱怨。是否有明确的解决方法来使用另一个表的修改信息更新一个表?

到目前为止我所拥有的内容的精简版。 (由于栏目更新都是相似的,这里只展示一个)

update students

set clicks_jan = 

    sum(
        case 
        when cast(strftime('%j', mwhen) as integer) < 32 then 1
        else 0 end)
from students, usage 
inner join students.user_id = usage.mwho;

非常感谢任何帮助。

【问题讨论】:

    标签: sql


    【解决方案1】:

    我并不是你想要的,但这是我的尝试:

    UPDATE students set
      Clicks_jan = (SELECT case when cast(strftime('%j',mwhen) AS integer) < 32
                                then 1 else 0 end
                    FROM usage
                    WHERE mwho=student.user_id);
    

    【讨论】:

    • 谢谢!我做了一个小改动以达到我想要的方式: Clicks_jan = ( sum( when cast(strftime('%j',mwhen) AS integer)
    猜你喜欢
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    相关资源
    最近更新 更多