我试图在PostgreSQL数据库中的公司数据表上找到匹配的字符串。我正在使用下面的查询,这个查询可以很好地实现这个目的,但是我想对一些字符串进行加权。例如,金融服务应该值3分,而不是像Mobile这样更普通的东西。
我能够通过使用标签!= 'Internet‘where子句来排除某些结果,但是我想不出给一些字符串增加权重的方法。
SELECT
count(*)
FROM (
SELECT
company_tags.tag
FROM
unnest(ARRAY ['Internet','Web Services & Apps','Technology','SAAS','Mobile', 'B2C', 'Financial Services']) AS company_tags (tag)
WHERE
tag != 'Internet'
AND tag != 'Web Services & Apps'
AND tag != 'Technology'
INTERSECT
SELECT
company_pairing_option_tags.tag
FROM
unnest(ARRAY ['Internet','Technology','Web Services & Apps','Mobile','B2C', 'Financial Services']) AS company_pairing_option_tags (tag)
WHERE
tag != 'Internet'
AND tag != 'Web Services & Apps'
AND tag != 'Technology') AS count;发布于 2022-01-22 01:24:30
您可以将count(*)替换为:
sum (
case tag
when 'Financial Services'
then 3
when 'other 3 points tag'
then 3
else 1
end)https://stackoverflow.com/questions/70808804
复制相似问题