我有几张表,每天记录所有数据。 但是,我需要做一个选择,带来每个月最后一天的所有记录。 我在 Stack 上四处张望,但没有找到它。
我需要查询 Postgresql。 数据类型是数据。 数据是从2016-08-02到今天
例子: 桌名=零食
姓名(str) | 金额(整数) | 日期(日期) |
---|---|---|
饼干 | 3 | 2018-01-28 |
布朗尼 | 5 | 2018-01-28 |
饼干 | 8 | 2018-01-29 |
布朗尼 | 6 | 2018-01-29 |
饼干 | 9 | 2018-01-30 |
布朗尼 | 4 | 2018-01-30 |
饼干 | 15 | 2018-01-31 |
布朗尼 | 14 | 2018-01-31 |
……
姓名(str) | 金额(整数) | 日期(日期) |
---|---|---|
饼干 | 24 | 2018-02-25 |
布朗尼 | 32 | 2018-02-25 |
饼干 | 20 | 2018-02-26 |
布朗尼 | 15 | 2018-02-26 |
饼干 | 12 | 2018-02-27 |
布朗尼 | 7 | 2018-02-27 |
饼干 | 5 | 2018-02-28 |
布朗尼 | 6 | 2018-02-28 |
我试过 date_trunc 和 distinct,但我没有得到每个月末的回报。
结果应该是:
姓名(str) | 金额(整数) | 日期(日期) |
---|---|---|
饼干 | 15 | 2018-01-31 |
布朗尼 | 14 | 2018-01-31 |
饼干 | 5 | 2018-02-28 |
布朗尼 | 6 | 2018-02-28 |
您可以将日期的月份与第二天的月份进行比较
Select * from snacks
where EXTRACT(MONTH FROM snacks.d) != EXTRACT(MONTH FROM snacks.d + 1)