Postgresql Postgres Distinct而不是Group By

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

我正在从mysql迁移到Postgres,在那里我可以只做一个简单的分组。我想基本上按月份和年份对记录进行分组,例如,我只会得到2016年1月的一个记录,2016年2月的一个记录,等等

我的查询在Postgres中运行,但我不确定这是否是最有效的方法,只是看起来应该有更好的方法。最后,我不得不在年份和月份列的组合上运行一个独特的。年和月列是整数

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。谢谢,这更干净了