在mysql中使用内部联接和别名

亚当·弗雷米勒

我正在尝试从同一张表中加入几个不同的值。我正在尝试从不同的时间范围返回查询中的打印率(在月/日/年/周等中已打印了多少),并且在执行以下查询时遇到1064错误。可能是什么解释?

SELECT t1.station_name, t1.yearpages, t2.monthpages
FROM (
    SELECT station_name, SUM(print_pages) yearpages
    FROM `file_prints`
    WHERE year(print_date) = 2014;
) t1
INNER JOIN (
    SELECT station_name, sum(print_pages) monthpages
    FROM `file_prints`
    WHERE month(print_date) = 2;
) ON t1.station_name = t2.station_name;

然后,如果我要添加多个联接,查询将看起来像这样吗?

SELECT t1.station_name, t1.station_name as db_name, t1.yearpages, t2.monthpages, t3.daypages, t4.weekpages
FROM (
    SELECT station_name, sum(print_pages) yearpages
    FROM `file_prints`
    WHERE year(print_date) = $year;
    GROUP BY station_name
) t1
INNER JOIN (
    SELECT station_name, sum(print_pages) monthpages
    FROM `file_prints`
    WHERE month(print_date) = $month;
    GROUP BY station_name
) t2 ON t1.station_name = t2.station_name 
INNER JOIN (
    SELECT station_name, sum(print_pages) daypages
    FROM `file_prints`
    WHERE dayofmonth(print_date) = $day;
    GROUP BY station_name
) t3 ON t2.station_name = t3.station_name
INNER JOIN (
    SELECT station_name, sum(print_pages) weekpages
    FROM `file_prints`
    WHERE week(print_date) = $week;
    GROUP BY station_name
) t4 ON t3.station_name = t4.station_name
戈登·利诺夫(Gordon Linoff)

仅使用条件聚合怎么样?

SELECT station_name,
       sum(case when year(print_date) = $year then print_pages end) as yearpages,
       sum(case when month(print_date) = $month then print_pages end) as monthpages,
       sum(case when day(print_date) = $day then print_pages end) as daypages,
       sum(case when week(print_date) = $week then print_pages end) as weekpages
FROM `file_prints`
GROUP BY station_name;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL内部联接中使用别名

来自分类Dev

防止在MySQL中使用内部联接将左联接重复

来自分类Dev

在MySQL中使用内部联接和多个选择条件创建视图

来自分类Dev

在一个查询中使用内部联接和不同

来自分类Dev

在mysql查询中使用两个内部联接

来自分类Dev

在FilterClause中使用内部联接

来自分类Dev

在 SQL 中使用内部联接

来自分类Dev

MYSQL查询和内部联接

来自分类Dev

使用内部联接和子查询的mysql查询

来自分类Dev

使用group by和内部联接的mysql错误行为

来自分类Dev

使用内部联接MYSQL联接多个表

来自分类Dev

使用内部联接的MySQL查询

来自分类Dev

在SQL中使用内部联接创建表

来自分类Dev

SQL在左联接中使用内部查询

来自分类Dev

在SQL中使用内部联接创建表

来自分类Dev

MySQL两表内部联接和计数

来自分类Dev

MySQL的内部联接3表和联合

来自分类Dev

在mysql中使用3个表使用内部联接时出现错误

来自分类Dev

在联接查询的select语句中使用别名

来自分类Dev

带有左联接和内部联接的MySQL查询

来自分类Dev

Mysql:左联接和内部联接在子查询中

来自分类Dev

Cakephp3,如何在cakephp3中使用where子句和内部联接?

来自分类Dev

如何在同一python代码中使用内部联接和groupby

来自分类Dev

在MySql中使用3个表的内部联接删除已限制的约束

来自分类Dev

MySQL-在内部联接中使用存储过程的结果

来自分类Dev

如何在MySQL中使用两个条件进行内部联接

来自分类Dev

使用Laravel Eloquent的with()函数和内部联接

来自分类Dev

MySQL-使用WHERE子句的内部联接

来自分类Dev

使用内部联接在mysql上查询