使用LIMIT和BETWEEN运算符的类似子查询的较短SQL语句

点火器

我在下面的代码中添加了子查询的结果,以获取一月份的数据。

子查询的建立方式相同。唯一更改的是BETWEEN运算符中指定的时间范围。

有没有编写此SQL语句的较短方法?因为我还想要其他月份的子查询,这样12个月的SQL将变得非常大。

所以最后,我想添加子查询以获取一月,二月,三月,四月等的一行。

(我正在使用PHP和MySQL。)

这是SELECT语句:

SELECT 
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-01 01:00:00' AND '2014-01-01 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-02 01:00:00' AND '2014-01-02 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-03 01:00:00' AND '2014-01-03 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-04 01:00:00' AND '2014-01-04 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-05 01:00:00' AND '2014-01-05 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-06 01:00:00' AND '2014-01-06 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-07 01:00:00' AND '2014-01-07 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-08 01:00:00' AND '2014-01-08 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-09 01:00:00' AND '2014-01-09 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-10 01:00:00' AND '2014-01-10 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-11 01:00:00' AND '2014-01-11 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-12 01:00:00' AND '2014-01-12 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-13 01:00:00' AND '2014-01-13 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-14 01:00:00' AND '2014-01-14 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-15 01:00:00' AND '2014-01-15 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-16 01:00:00' AND '2014-01-16 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-17 01:00:00' AND '2014-01-17 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-18 01:00:00' AND '2014-01-18 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-19 01:00:00' AND '2014-01-19 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-20 01:00:00' AND '2014-01-20 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-21 01:00:00' AND '2014-01-21 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-22 01:00:00' AND '2014-01-22 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-23 01:00:00' AND '2014-01-23 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-24 01:00:00' AND '2014-01-24 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-25 01:00:00' AND '2014-01-25 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-26 01:00:00' AND '2014-01-26 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-27 01:00:00' AND '2014-01-27 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-28 01:00:00' AND '2014-01-28 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-29 01:00:00' AND '2014-01-29 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-30 01:00:00' AND '2014-01-30 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) +
(
SELECT DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5+DaySum_6+DaySum_7+DaySum_8+DaySum_9+DaySum_15
FROM   rysolarplus
WHERE DatumUhrzeit BETWEEN '2014-01-31 01:00:00' AND '2014-01-31 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) AS january;

表摘录:

在此处输入图片说明

托马斯·克里默斯

该查询将采用每天的最大值,然后每月求和:

SELECT
  YEAR(TagTotalen.Tag),
  Month(TagTotalen.Tag),
  SUM(TagTotalen.TagTotal)
FROM
  (
    SELECT
      DATE(DatumUhrzeit) AS Tag,
      MAX(DaySum_1) + MAX(DaySum_2) AS TagTotal
    FROM
      rysolarplus
    GROUP BY
      DATE(DatumUhrzeit)
  ) AS TagTotalen
GROUP BY
  YEAR(TagTotalen.Tag),
  MONTH(TagTotalen.Tag)

SQL Fiddle进行演示:http://sqlfiddle.com/#!2 / 2b73b4 / 1/0

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用LIMIT和BETWEEN运算符的类似子查询的较短SQL语句

来自分类Dev

SQL语句中的多个BETWEEN和LIMIT运算符

来自分类Dev

如何使用类似SQL的运算符查询PouchDB

来自分类Dev

在子查询中使用And运算符

来自分类Dev

如何使用类似于SQL的LIKE运算符使用查询猫鼬?

来自分类Dev

在SQL查询中使用IN运算符

来自分类Dev

如何使用BETWEEN运算符比较两个SELECT子查询?

来自分类Dev

SQL Server使用带有子查询的IN运算符似乎是一个BUG?

来自分类Dev

使用“不在”运算符转换子查询以加入

来自分类Dev

使用比较运算符的“ where”子查询

来自分类Dev

使用“EXISTS”和“IN”运算符的选择语句

来自分类Dev

sql查询,是否可以存在LIKE和==运算符?

来自分类Dev

SQL查询-使用ALL和'='运算符未获得预期结果

来自分类Dev

在 HAVING 和 WHERE 子句之间使用 OR 运算符的 SQL 查询

来自分类Dev

如何使用 sql AND 和 OR 运算符按类别查询帖子

来自分类Dev

使用'lower()'和'in'运算符的Grails gorm'where'查询

来自分类Dev

如何在CI中使用OR和AND运算符查询?

来自分类Dev

MongoDB使用$ and和$ nor运算符查找查询

来自分类Dev

使用lt和gt运算符的MongoDB查询

来自分类Dev

MongoDB使用$ and和$ nor运算符查找查询

来自分类Dev

多行子查询运算符

来自分类Dev

BETWEEN 和标准比较运算符 Oracle SQL

来自分类Dev

嵌套if语句和“ &&”运算符

来自分类Dev

BinaryReader和while语句运算符

来自分类Dev

if语句和“?/:”运算符之间的区别

来自分类Dev

SQL查询-在<=运算符中使用值范围

来自分类Dev

在C#中使用“%”运算符的SQL删除查询

来自分类Dev

在SQL查询中使用count()运算符

来自分类Dev

在 mssql 中使用 LIKE 运算符设置 sql 查询

Related 相关文章

  1. 1

    使用LIMIT和BETWEEN运算符的类似子查询的较短SQL语句

  2. 2

    SQL语句中的多个BETWEEN和LIMIT运算符

  3. 3

    如何使用类似SQL的运算符查询PouchDB

  4. 4

    在子查询中使用And运算符

  5. 5

    如何使用类似于SQL的LIKE运算符使用查询猫鼬?

  6. 6

    在SQL查询中使用IN运算符

  7. 7

    如何使用BETWEEN运算符比较两个SELECT子查询?

  8. 8

    SQL Server使用带有子查询的IN运算符似乎是一个BUG?

  9. 9

    使用“不在”运算符转换子查询以加入

  10. 10

    使用比较运算符的“ where”子查询

  11. 11

    使用“EXISTS”和“IN”运算符的选择语句

  12. 12

    sql查询,是否可以存在LIKE和==运算符?

  13. 13

    SQL查询-使用ALL和'='运算符未获得预期结果

  14. 14

    在 HAVING 和 WHERE 子句之间使用 OR 运算符的 SQL 查询

  15. 15

    如何使用 sql AND 和 OR 运算符按类别查询帖子

  16. 16

    使用'lower()'和'in'运算符的Grails gorm'where'查询

  17. 17

    如何在CI中使用OR和AND运算符查询?

  18. 18

    MongoDB使用$ and和$ nor运算符查找查询

  19. 19

    使用lt和gt运算符的MongoDB查询

  20. 20

    MongoDB使用$ and和$ nor运算符查找查询

  21. 21

    多行子查询运算符

  22. 22

    BETWEEN 和标准比较运算符 Oracle SQL

  23. 23

    嵌套if语句和“ &&”运算符

  24. 24

    BinaryReader和while语句运算符

  25. 25

    if语句和“?/:”运算符之间的区别

  26. 26

    SQL查询-在<=运算符中使用值范围

  27. 27

    在C#中使用“%”运算符的SQL删除查询

  28. 28

    在SQL查询中使用count()运算符

  29. 29

    在 mssql 中使用 LIKE 运算符设置 sql 查询

热门标签

归档