mysql - 当我将多个变量放在 SELECT 部分时,GROUP BY 部分不起作用
问题描述
我的表格如下:
store历史表
库存ID | 库存日期 | 库存数量 |
---|---|---|
1 | 2014-06-01 | 20 |
2 | 2014-06-15 | 45 |
3 | 2014-07-01 | 31 |
4 | 2014-07-15 | 24 |
5 | 2014-08-01 | 54 |
6 | 2014-08-15 | 76 |
7 | 2014-09-01 | 91 |
8 | 2014-09-15 | 24 |
9 | 2015-06-01 | 56 |
10 | 2015-06-15 | 82 |
我希望获得不同月份和年份的库存量
——线索一
SELECT InventoryAmount,
YEAR(InventoryDate) AS Year,
MONTH(InventoryDate) AS Month
FROM storeHistory
GROUP BY Year AND Month
HAVING COUNT (InventoryAmount);
这会导致以下错误:
错误代码:1055。SELECT 列表的表达式#1 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列 storeHistory.InventoryAmount;这与 sql_mode=only_full_group_by 不兼容...```
——轨迹二
SELECT COUNT(InventoryAmount) as Amount
FROM storeHistory
GROUP BY DATE_FORMAT(InventoryDate, '%Y-%m-%d ');
但是,这也不起作用。
解决方案
我建议使用这个版本,通过你当前的两个几乎正确的查询:
SELECT DATE_FORMAT(InventoryDate, '%Y-%m') ym, SUM(InventoryAmount) AS Amount
FROM storeHistory
GROUP BY ym;
您的两次尝试都有各种问题。查询的经验法则GROUP BY
是,出现在SELECT
子句中的每一列都必须是聚合,例如SUM()
,或者也必须出现在GROUP BY
.
推荐阅读
- swift - Swift 中的打印机秤
- r - 如何在重新启动 R Shiny 应用程序或查询时保存已编辑的数据框并将其加载回来?
- kubernetes - 将networking.k8s.io/v1beta1移植到v1
- angular - 带数字的楼梯图案(角度)
- vuejs2 - VUEJS npm run dev:模块解析失败:意外令牌
- reactjs - 如何在 React 中正确显示某些变量
- tensorflow - Seq2Seq 模型为所有句子返回相同的向量
- c++ - C 或 C++ websocket 客户端工作示例
- reactjs - 如何平滑地重新渲染昂贵的组件
- c# - C# 通过 REST 接受 null 或字符串