0

私はSNとタイトルのテーブルを持っています最初のクエリで私はします:

create or replace view AB as
select wrote.serial_number as SN, count(wrote.serial_number) as NumOfPapers
from wrote
group by wrote.serial_number;

そして、私はSNとSNごとのタイトルの数でビューを取得しますが、最も多くのタイトル(カウントの最大値)を持つ行を取得したい場合よりも:ID | max(count)なので、私はそうします:

select AB.SN, max(AB.NumOfPapers)
from AB

しかし、私は最初の行の人のSNでカウントの最大数を取得します(最も多くのタイトルを持つ実際のSNではありません)

max()を使用する必要があります...'order by'を使用した提案に感謝しますが、ここでは関係ありません

私は何が間違っているのですか?

ありがとう !

4

6 に答える 6

1

私はあなたがこのようなものが欲しいと思います:

SELECT sn
FROM   ab
ORDER BY NumOfPapers DESC
LIMIT 1
于 2012-12-31T20:59:04.110 に答える
1

最初の行の NumOfPapers の数だけを取得している理由は、ab.serial 番号も選択しているためです。だから、これはあなたが探しているものを与えると思います:

select AB.SN, AB.NumOfPapers FROM AB order by AB.NumOfPapers desc limit 1;
于 2012-12-31T21:04:36.543 に答える
0
create or replace view AB as
select wrote.serial_number as SN, count(wrote.serial_number) as NumOfPapers
from wrote
group by wrote.serial_number 
ORDER by NumOfPapers DESC;

select AB.SN, AB.NumOfPapers from AB LIMIT 1
于 2012-12-31T21:02:09.517 に答える
0

あなたが使用しNumOfPapersているのは次の数ですserial_number

   select AB.SN, max(wrote.serial_number)

       from AB, wrote
于 2012-12-31T21:03:08.503 に答える
0

私はそれを理解したと思います:

create or replace view AB as
select wrote.serial_number as SN, count(wrote.serial_number) as NumOfPapers
from wrote
group by wrote.serial_number;

select AB.SN, AB.NumOfPapers
from AB
where AB.NumOfPapers = (select max(AB.NumOfPapers)
                        from AB)

助けてくれてありがとう、あなたは本当に私をそこに導いてくれました!

于 2012-12-31T21:39:31.203 に答える
-1

あなたの 2 番目のクエリは、AB からのすべての AB.SN と max(AB.NumOfPapers) をデータベースに要求すると思います。 where ステートメントを試しましたか?

select AB.SN, max(AB.NumOfPapers)
from AB
where AB.NumOfPapers = max(AB.NumOfPapers)

(私はこれをテストしていませんが、いくつかの調整が必要かもしれません)

于 2012-12-31T20:55:44.820 に答える