我有4张桌子
单词
raw_value
b
t
page_id
页面
id
metadata
document_id
文档
id
error_status
定时
user_name
to
document_id
这是我的四个表,我想选择id,raw_value和lower(raw_value),但在某些情况下,这是我的sql查询:
SELECT p.id,
array_agg(w.raw_value) as words_top ,
array_agg(lower(w.raw_value)) as words_top_lowercase
FROM word w
LEFT OUTER JOIN page p
ON w.page_id = p.id
AND ((w.b+w.t)/cast(p.metadata->>'height' as float) < 0.33)
LEFT OUTER JOIN document d
ON p.document_id = d.id
AND d.error_status not in ('REVIEW_REQUESTED', 'TO_VALIDATE', 'TO_CORRECT', 'NO_INVOICE')
LEFT OUTER JOIN timing t
ON d.id = t.document_id
AND t.user_name IN ('Richard Andrian', 'Adrien Rajon', 'Francine Rak')
AND t.t0 > '2018-06-15'
group by p.id;
我注意到结果是每3倍,例如,当我尝试查看“ words_top”时,我得到了:
['Gare', 'Gare', 'Gare', 'La', 'La', 'La', 'Fabrication',
'Fabrication', 'Fabrication', 'Dépôt', 'Dépôt', 'Dépôt', 'ra', 'ra',
'ra', 'at', 'at', 'at', ':', 'Télécopie', 'Télécopie', 'Télécopie',
'0243686300', '0243686300', '0243686300', 'Téléphone', 'Téléphone',
'Téléphone', 'LAVAL', 'LAVAL', 'LAVAL', '-53000', '-53000', '-53000',
'Jaurès', 'Jaurès', 'Jaurès', 'Jean', 'Jean', 'Jean', 'Boulevard',
'Boulevard', 'Boulevard', '39,', '39,', '39,', 'BRICOLAGE',
'BRICOLAGE', 'BRICOLAGE', '&', '&', '&', 'MATÉRIAUX', 'MATÉRIAUX',
'MATÉRIAUX', 'Télécopie', 'Télécopie', 'Télécopie', '0299963860',
'0299963860', '0299963860', ':', ':', ':', ':', 'Téléphone', ':', ':',
':', 'Téléphone', 'Téléphone', 'GUERCHE-DE-BRETAGNE',
'GUERCHE-DE-BRETAGNE', 'GUERCHE-DE-BRETAGNE', 'LA', 'LA', 'LA',
'-35130', '-35130', '-35130', 'Téléphone', 'Rennes', 'Gedimat',
'Gedimat', 'Gedimat', '0243060690', '0243060690', '0243060690',
'0299964442', '0299964442', '0299964442', '0243686301', 'Rennes',
'de', 'de', 'SOC', 'SOC', 'SOC', 'de', 'Agences', 'Agences',
'Agences', '0243686301', 'Route', 'Route', 'Route', 'Télécopie',
'Télécopie', 'Télécopie', '0243091919', '0243091919', '0243091919',
'Téléphone', 'Téléphone', 'Téléphone', 'CRAON', 'CRAON', 'CRAON',
'-53400', '-53400', '-53400', 'Pépinière', 'Pépinière', 'Pépinière',
'La', 'La', 'La', 'ZA', 'ZA', 'ZA', 'Social', 'Social', 'Social',
'Siège', 'Siège', 'Siège', '0243686301', ':', 'Rennes', '0243091920',
'0243091920', '0243091920', 'Télécopie', 'Télécopie', 'Télécopie',
'0243091913', '0243091913', '0243091913', 'S.A.S', 'S.A.S', 'S.A.S',
'au', 'au', 'au', 'Capital', 'Capital', 'Capital', 'de', 'de', 'de',
'400768', '400768', '400768', 'E', 'E', 'E', 'Téléphone', 'Téléphone',
'SELLE-CRAONNAISE', 'SELLE-CRAONNAISE', 'SELLE-CRAONNAISE', 'LA',
'LA', 'LA', '-53800', '-53800', '-53800']
您能帮我解决这个问题吗,我尝试在array_agg内使用DISTINCT,但这不是正确的方法,因为例如words_top应该返回单词“Téléphone” 4次,而不重复返回它只有一个。我在这里使用的查询返回单词“Téléphone” 12次,其他所有单词都相同。这意味着所有结果都每3倍增一次。
当我尝试查看特定page_id的top_word列表且没有添加任何共谋时,我得到了这样的结果:
{:,:,:,Siège,Social,ZA,La,Pépinière,-53400,CRAON,Téléphone,0243091919,Télécopie,Route,Agences,de,Rennes,-35130,LA,GUERCHE-DE-BRETAGNE, Téléphone,0299963860,Télécopie,MATÉRIAUX,&,BRICOLAGE,“ 39,”,Boulevard,Jean,Jaurès,-53000,LAVAL,Téléphone,0243686300,Télécopie,at,ra,Dépôt,Fabrication,La,Gare,-53800LA ,SELLE-CRAONNAISE,Téléphone,0243091920,Télécopie,0243091913,SAS,au,Capital,de,400768,E,Gedimat,0243060690,0299964442,0243686301,SOC}
我正在寻找这种结果,而不是重复的结果。