Postgresql Postgres Distinct而不是Group By
我正在从mysql迁移到Postgres,在那里我可以只做一个简单的分组。我想基本上按月份和年份对记录进行分组,例如,我只会得到2016年1月的一个记录,2016年2月的一个记录,等等 我的查询在Postgres中运行,但我不确定这是否是最有效的方法,只是看起来应该有更好的方法。最后,我不得不在年份和月份列的组合上运行一个独特的。年和月列是整数Postgresql Postgres Distinct而不是Group By,postgresql,Postgresql,我正在从mysql迁移到Postgres,在那里我可以只做一个简单的分组。我想基本上按月份和年份对记录进行分组,例如,我只会得到2016年1月的一个记录,2016年2月的一个记录,等等 我的查询在Postgres中运行,但我不确定这是否是最有效的方法,只是看起来应该有更好的方法。最后,我不得不在年份和月份列的组合上运行一个独特的。年和月列是整数 SELECT distinct on (year::text || month::text) id, name, type, month, year
SELECT distinct on (year::text || month::text) id, name, type, month, year
FROM records
WHERE type = 44
ORDER BY year::text || month::text DESC, year, month
LIMIT 12
您不需要连接:
select distinct on (year, month)
id, name, type, month, year
from records
where type = 44
order by year desc, month desc
limit 12
Pg还可以执行“简单分组方式”查询。从mysql共享您的工作原始查询。除非它公然违反了SQL标准,否则它应该很容易翻译成Pg风格的SQL。谢谢,这更干净了