【问题标题】:How to join SQL query in sqlite?如何在sqlite中加入SQL查询?
【发布时间】:2021-09-07 18:08:42
【问题描述】:

如何在第一个查询中编写第二个查询而不是“users_statistic”?

SELECT * 
from 'users' LEFT JOIN 'users_statistic' 
ON users.id=users_statistic.user_id

SELECT *, SUM(clicks) as sum_clicks, SUM(page_views) as sum_page_views 
FROM 'users_statistic' 
GROUP BY user_id

二次查询返回表
user_id   sum_clicks      sum_page_clicks
1             754                  543
2            234                  987

在表'users'中是字段id,相当于表'users_statistic'中的user_id。表“用户”中也没有字段 sum_clickssum_page_clicks。我想将第二个查询中的字段 sum_clickssum_page_clicks 添加到表“用户”

【问题讨论】:

  • 不清楚您的目标是什么。请添加示例数据来解释您要执行的操作。请注意,您的第二个查询在技术上是无效的(至少根据 ANSI SQL),因为您正在执行 SELECT *GROUP BY
  • 已添加。第二个查询正在运行

标签: sql sqlite group-by sum left-join


【解决方案1】:

您可以直接在第一个查询中进行聚合:

SELECT u.id, u.name,
       COALESCE(SUM(s.clicks), 0) sum_clicks, 
       COALESCE(SUM(s.page_views), 0) sum_page_views
FROM users u LEFT JOIN users_statistic s 
ON u.id = s.user_id
GROUP BY u.id

我使用COALESCE(),因此如果用户没有点击或页面浏览,您将获得0 而不是null

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 2011-11-16
    • 1970-01-01
    • 2021-10-12
    • 2020-12-02
    • 2011-12-04
    • 1970-01-01
    相关资源
    最近更新 更多