mysql - mySQL Select All where date is less than 1 day from max date in data
问题描述
我有一个表名“raw”。日期列没有包含月份的所有日期,因为它没有记录假期或当天没有销售。我正在尝试从小于特定日期或最大日期的日期获取数据,但它没有像最大日期是假期之前那样返回搜索。以下是日期: 2021-07-09 2021-07-07 2021-07-03 2021-07-02 2021-07-01 2021-06-30
SELECT *
FROM raw
WHERE date=(SELECT MAX(date) - 1 FROM raw);
or
SELECT *
FROM raw
WHERE date=(SELECT MAX(date) - interval 1 day FROM raw);
\begin{table}[]
\begin{tabular}{lll}
Name & Date & Sales \\
ACC & 2020-07-09 & 2000 \\
BEL & 2020-07-09 & 200 \\
Dabur & 2020-07-09 & 600 \\
ACC & 2020-07-07 & 450 \\
GMR & 2020-07-07 & 12 \\
ACC & 2020-07-03 & 450 \\
ITC & 2020-07-03 & 45 \\
Dabur & 2020-07-03 & 350 \\
GMR & 2020-07-03 & 450 \\
BEL & 2020-06-30 & 500 \\
GTL & 2020-06-30 & 850 \\
Dabur & 2020-06-30 & 100 \\
ACC & 2020-06-27 & 50 \\
Dabur & 2020-06-27 & 125
\end{tabular}
\end{table}
解决方案
如果您想要特定日期前一天的数据,请使用:
SELECT r.*
FROM raw r
WHERE r.date = (SELECT MAX(r2.date) FROM raw r2 WHERE r2.date < ?);
?
是具体日期。
对于最大日期之前的日期,您可以使用:
SELECT r.*
FROM raw r
WHERE r.date = (SELECT MAX(r2.date)
FROM raw r2
WHERE r2.date < (SELECT MAX(r2.date) FROM raw r3)
);
哎哟。两个级别的子查询。这似乎很麻烦。一个更简单的方法是:
SELECT r.*
FROM raw r
WHERE r.date = (SELECT DISTINCT r2.date
FROM raw r2
ORDER BY r2.DATE DESC
LIMIT 1 OFFSET 1
);
推荐阅读
- python - 从文本文件传入参数时,Python 脚本不起作用
- webpack - 为 webpack HMR Vue.js 包含来自外部项目文件夹的可导入模块
- nest - 如何使用字段名称作为字符串创建 MatchQueryDescriptor?
- c++ - Swift 通过 BLE 从设备接收数据
- c++ - C++ 逗号运算符混淆
- python - __name__=="__main__" 函数调用问题
- mysql - 如果使用 var 关键字节点,则 var 未定义
- javascript - 用于用户角色的不同 React Webpack JS 捆绑包
- javascript - 全局环境中的node.js查找符号
- php - 在 Mac 上使用 PHP 和 SQL