【发布时间】:2020-10-29 18:26:25
【问题描述】:
我有疑问
SELECT
cn.country_name,
pbi.gender,
pbi.first_name,
pbi.last_name, pbi.iq_level,
pf.dominate_feature, pv.political_view,
—RANK() OVER(ORDER BY gender DESC) AS "rank",--1,529
—RANK() OVER(ORDER BY iq_level DESC) AS "iq_rank",--rank by iq
—ROW_NUMBER() OVER(ORDER BY 1) AS rownum, — how many rows, numere each row
RANK() OVER(PARTITION BY first_name ORDER BY political_view DESC) AS rnk_pol_view
FROM person_basic_info pbi
JOIN country_names cn ON cn.id = pbi.country_id
JOIN persons_features pf ON pf.person_id = pbi.id
JOIN political_views pv ON pv.person_id = pbi.id;
结果是
+--------------+--------+-------------+---------------+----------+-------------------+-------------------------+--------------+
| country_name | gender | first_name | last_name | iq_level | dominate_feature | political_view | rnk_pol_view |
+--------------+--------+-------------+---------------+----------+-------------------+-------------------------+--------------+
| Yemen | Male | Abeu | Flieg | 118 | Conscientiousness | Liberal feminism | 1 |
| Yemen | Female | Adeline | Munt | 101 | Conscientiousness | Classical liberalism | 1 |
| Yemen | Female | Adey | Jobbing | 145 | Openness | Ordoliberalism | 1 |
| Yemen | Female | Adore | Dorwood | 105 | Conscientiousness | Neoliberalism | 1 |
| Yemen | Female | Adrianna | Wardhaugh | 125 | Agreeableness | Individualism | 1 |
| Yemen | Male | Adriano | Grieswood | 160 | Agreeableness | Neoliberalism | 1 |
| Yemen | Female | Afton | Kleanthous | 87 | Extraversion | Market liberalism | 1 |
| Yemen | Male | Aguie | Lampbrecht | 138 | Conscientiousness | Liberal feminism | 1 |
| Yemen | Male | Aguistin | Basnett | 145 | Extraversion | Ordoliberalism | 1 |
| Yemen | Male | Ahmad | Billingham | 122 | Agreeableness | Neoliberalism | 1 |
| Yemen | Female | Aime | Adrianello | 111 | Agreeableness | Liberal feminism | 1 |
+--------------+--------+-------------+---------------+----------+-------------------+-------------------------+--------------+
但是 期望的结果是:
+--------+-----------------+-------------------+-------------------+-------------------+-------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+--------+
| Gender | Count_by_gender | Conscientiousness | Openness | Agreeableness | Extraversion | Liberal feminism | Classical liberalism | Ordoliberalism | Neoliberalism | Individualism | Market liberalism | Avg_Iq |
+--------+-----------------+-------------------+-------------------+-------------------+-------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+--------+
| Female | count(*) | count(*) | count(*) | count(*) | count(*) | count(*) | count(*) | count(*) | count(*) | count(*) | count(*) | avg() |
| Male | count(*) | count(*) | count(*) | count(*) | count(*) | count(*) | count(*) | count(*) | count(*)
| count(*) | count(*) | avg() |
+--------+-----------------+-------------------+-------------------+-------------------+-------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+--------+
你能用窗口函数帮忙吗?
【问题讨论】:
标签: sql postgresql count