SELECT DATE_FORMAT(Block_state_date, '%Y-%m-%d %H:'), COUNT(1) FROM cc_dat_block_log where block_state=40 and block_state_date > curdate() and product_id = 41010300 and Block_state_date > '2023-06-05 16:00:00' -- BETWEEN start_time AND end_time GROUP BY DATE_FORMAT(Block_state_date, '%Y-%m-%d %H:'), FLOOR(MINUTE(Block_state_date) / 5) order by DATE_FORMAT(Block_state_date, '%Y-%m-%d %H:') desc limit 10 > all columns in group by clause should be in the selected column list.!alibaba.druid.sql.ast.expr.SQLBinaryOpExpr@6656f9c4) > 时间: 0.007s
时间: 2024-03-06 15:47:41 浏览: 369
这个错误提示显示在SQL语句中GROUP BY子句中的所有列都必须出现在SELECT列表中。具体地说,在你的查询中,你的GROUP BY子句中包含两个列:DATE_FORMAT(Block_state_date, '%Y-%m-%d %H:')和FLOOR(MINUTE(Block_state_date) / 5),但是在SELECT列表中只有一个列:DATE_FORMAT(Block_state_date, '%Y-%m-%d %H:')。因此,需要将GROUP BY子句中的所有列都添加到SELECT列表中,或者使用聚合函数对其进行处理。
以下是一个修正后的查询,其中将GROUP BY子句中的两个列都添加到了SELECT列表中:
```
SELECT DATE_FORMAT(Block_state_date, '%Y-%m-%d %H:'), FLOOR(MINUTE(Block_state_date) / 5), COUNT(1)
FROM cc_dat_block_log
WHERE block_state=40 AND block_state_date > curdate() AND product_id = 41010300 AND Block_state_date > '2023-06-05 16:00:00'
GROUP BY DATE_FORMAT(Block_state_date, '%Y-%m-%d %H:'), FLOOR(MINUTE(Block_state_date) / 5)
ORDER BY DATE_FORMAT(Block_state_date, '%Y-%m-%d %H:') DESC
LIMIT 10;
```
在这个修正后的查询中,GROUP BY子句中的两个列都添加到了SELECT列表中,并使用了聚合函数COUNT(1)对数据进行了统计。这将避免了上述错误提示。
阅读全文