如何将3个SQL查询合并为1个?

5 mysql sql date

这是为了统计过去一天内有多少人访问过。我还想包括最近一周和一年中访问过的用户数,并在不进行3个单独查询的情况下将其全部输出。

SELECT COUNT(updated_at) AS 'TODAY'
FROM parts_development.page_views p
WHERE updated_at >= DATE_SUB(NOW(),INTERVAL 1 day)
GROUP BY parts_user_id;
Run Code Online (Sandbox Code Playgroud)

Qua*_*noi 5

SELECT  DAY(updated_at), WEEK(updated_at), COUNT(*) AS visits
FROM    parts_development.page_views p
WHERE   updated_at >= DATE_SUB(NOW(),INTERVAL 1 year)
GROUP BY
        DAY(updated_at), WEEK(updated_at) WITH ROLLUP
Run Code Online (Sandbox Code Playgroud)

这将计算一年内的访问次数,按天、周和总数进行分组。

如果您只想在三列中选择一天、一周和一年的访问次数,请使用以下命令:

SELECT  (
        SELECT  COUNT(*)
        FROM    parts_development.page_views p
        WHERE   updated_at >= DATE_SUB(NOW(),INTERVAL 1 DAY)
        ) AS last_day,
        (
        SELECT  COUNT(*)
        FROM    parts_development.page_views p
        WHERE   updated_at >= DATE_SUB(NOW(),INTERVAL 7 DAY)
        ) AS last_week,
        (
        SELECT  COUNT(*)
        FROM    parts_development.page_views p
        WHERE   updated_at >= DATE_SUB(NOW(),INTERVAL 1 YEAR)
        ) AS last_year
Run Code Online (Sandbox Code Playgroud)