[英]convert sqlite to postgres query
有人可以幫助我將此sqlite查詢轉換為postgres查詢嗎?
SELECT count(*), count(*), date(date, '-'||strftime('%w',date)||' days') as date
FROM emails as m, contacts as me
WHERE datetime(date) > datetime('2010-08-25')
and datetime(date) < datetime('2011-08-25')
and (me.id = m.fr)
and me.email like '%gmail.com%'
GROUP BY date
ORDER BY date asc
更新后,我找到了答案:
select count(*), (m.date::date - extract(dow from m.date)::int) as dat
from emails as m join contacts as me on m.fr = me.id
where m.date > '2010-08-25'
and m.date < '2011-08-25'
and me.email like '%gmail.com%'
group by dat
order by dat
strftime
業務已在其他地方處理,因此我們只需要在此處整理datetime(...)
內容並補償date
是時間戳即可。 在這里時,我將切換到顯式連接條件(而不是WHERE子句中的隱式條件)。
select count(*), count(*), m.date::date - extract(dow from m.date)::int as date
from emails as m join contacts as me on m.fr = me.id
where m.date > '2010-08-25'
and m.date < '2011-08-25'
and me.email like '%gmail.com%'
group by m.date
order by m.date asc
PostgreSQL可以自己將時間戳與ISO8601日期字符串進行比較,因此您無需進行任何強制轉換或重新格式化即可進行比較。
這兩個count(*)
在我看來仍然很有趣,但是我不知道使用查詢的上下文,因此重復可能有意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.