首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在同一个sql语句中执行两个查询?

问如何在同一个sql语句中执行两个查询?
EN

Stack Overflow用户
提问于 2020-12-27 05:21:44
回答 1查看 46关注 0票数 0

我有一个数据库,在其中我保存了很多网站的所有日常访问,日表的字段是名称,name和日期

我想将前天的访问和昨天的访问进行比较,所以显示的结果应该是3行。姓名,前天和昨天

我尝试过这个查询,但它在两行中显示了所有内容。

代码语言:javascript
复制
SELECT *
FROM (
    SELECT name as nombre, nvisit as anteayer
    from day
    WHERE date < CURDATE() -1 and date > CURDATE() -2
    UNION ALL
    SELECT name as nombre, nvisit as ayer
    from day
    where date < CURDATE() and date > CURDATE() -1
    GROUP by name
    )
    day

我能做些什么来解决这个问题?

当执行该句子时,结果是:

代码语言:javascript
复制
|name         |beforeyesterday|
|.............|...............|
|example1.com |2154           |
|example1.com |3215           |
|example2.com |1524           |
|example2.com |2546           |

我需要的是:

代码语言:javascript
复制
|name         |beforeyesterday|yesterday|
|.............|...............|.........|
|example1.com |2154           |3215     |
|example2.com |1524           |2546     |
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-27 05:27:34

我希望每个name都有一个单独的行,其中包含不同日期的计数列:

代码语言:javascript
复制
select name,
       sum(case when date < curdate() and date > curdate - interval 1 day
                then nvisit
           end) as yesterday,
       sum(case when date < curdate() - interval 1 day and date > curdate - interval 2 day
                then nvisit
           end) as day_before
from day
group by name;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65460823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档