0
我有一個普通的PostgreSQL查詢,我無法翻譯成漂亮的查詢。當使用groupBy
條款時,我會陷入語法湯。將普通PostgreSQL查詢的麻煩轉換爲平滑查詢
SELECT u.id AS investor_id,
u.account_type,
i.first_name,
issuer_user.display_name AS issuer_name,
p.legal_name AS product_name,
v.investment_date,
iaa.as_of AS CCO_approval_date,
v.starting_investment_amount,
v.maturity_date,
v.product_interest_rate,
v.product_term_length,
i.user_information_id,
v.id AS investment_id
FROM investors u
JOIN
(SELECT ipi.investor_id,
ipi.first_name,
ipi.user_information_id
FROM investor_personal_information ipi
JOIN
(SELECT investor_id,
MAX(id) AS Max_Id
FROM investor_personal_information
GROUP BY investor_id) M ON ipi.investor_id = m.investor_id
AND ipi.id = m.Max_Id) i ON u.id = i.investor_id
JOIN investments v ON u.id = v.investor_id
JOIN sub_products AS sp ON v.sub_product_id = sp.id
JOIN products AS p ON p.id = sp.product_id
JOIN company AS c ON c.id = p.company_id
JOIN issuers AS issuer ON issuer.id = c.issuer_id
JOIN users AS issuer_user ON issuer.owner = issuer_user.id
JOIN investment_admin_approvals AS iaa ON iaa.investment_id = v.id
ORDER BY i.first_name DESC;
我已經開始寫它
val query = {
val investorInfoQuery = (for {
i <- InvestorPersonalInformation
} yield (i)).groupBy {
_.investorId
}.map {
case (id, rest) => {
id -> rest.map(_.id).max
}
}
}
我知道我已經創建基礎查詢到一個大的查詢和申請加入分別對他們。任何人都可以幫助指導我或提供一些例子嗎?油滑很難。
一個選項是平滑的SQL。您可以使用現有的sql,並使用光滑的方式將其映射到結果類型。 –