0

我有一张这样的桌子:

Column          |         Type          | Modifiers


 username       | character varying(12) | not null

 electioncode   | integer               | not null

 votes          | integer               | default 0


PRIMARY KEY (username, electioncode)

如果我使用此查询,我需要使用用户名、选举代码、最大(投票)创建一个视图,它可以正常工作但没有用户名:

通过选举代码从表组中选择选举代码,最大(投票);

如果我添加用户名,它会要求我将其添加到组中,但如果我这样做,它会给我整个表格,而不仅仅是 username-electioncode-maxvotes

4

2 回答 2

1

您想获得与此票数相关联的用户名吗?或者给定选举代码中的任何用户名?

如果是第一个:

SELECT
    DISTINCT ON ( electioncode )
    *
FROM table
ORDER BY electioncode, votes desc;

如果另一个:

SELECT
    electioncode,
    min(username),
    max(votes)
FROM
    table
GROUP BY electioncode;
于 2013-02-07T17:10:26.273 回答
0

您的用户名字段似乎是唯一的。每条记录都有不同的用户名(我假设),因此当您按用户名分组时,它将为您提供所有记录。您正在尝试做的事情是逻辑问题而不是语法问题。

一个建议:你想在一张纸上写下你想看到的输出,然后构造查询......如果你想要用户名、选举代码和最大(投票),那么想象一下你将如何显示两个用户名的数据 - user1 和 user 2 有选举代码 001 并分别投票 1?你会如何展示这个?

于 2013-02-07T17:11:16.473 回答