0

私はこのようなテーブルを持っています:

Column          |         Type          | Modifiers


 username       | character varying(12) | not null

 electioncode   | integer               | not null

 votes          | integer               | default 0


PRIMARY KEY (username, electioncode)

このクエリを使用する場合、ユーザー名、electioncode、max(votes) を使用してビューを作成する必要がありますが、ユーザー名がなくても問題なく動作します。

選挙コードによるテーブルグループから選挙コード、最大(投票)を選択します。

ユーザー名を追加すると、それをグループに追加するように求められますが、そうすると、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

ユーザー名フィールドは一意のようです。すべてのレコードには異なるユーザー名があります(私が想定しています)。したがって、ユーザー名でグループ化すると、すべてのレコードが表示されます。あなたがやろうとしていることには、構文の問題ではなく論理の問題があります。

提案:見たい出力を紙に書き、クエリを作成します... Username、Electioncode、max(votes)が必要な場合は、2つのユーザー名でデータを表示する方法を想像してください-選挙コード001を持ち、それぞれ1票を投じたuser1とuser 2?これをどのように表示しますか?

于 2013-02-07T17:11:16.473 に答える