0

私はそれを理解することはできません: 私は市場、zip5、MHI、MHV、TheTable のようなフィールドを持つ ImportantaRecords と呼ばれるテーブルを持っており、TheTable = 'mg' を持つすべてのレコードを zip5 でグループ化したい... 私はこれを試しました:

select a.Market,a.zip5,count(a.zip5),a.MHI,a.MHV,a.TheTable from 
    (select * from ImportantaRecords where TheTable = 'mg') a
    group by a.Zip5

しかし、集計関数ではなく、古典的なエラーが発生します

そして、私はこれを試しました:

select Market,zip5,count(zip5),MHI,MHV,TheTable from ImportantaRecords where TheTable = 'mg'
    group by Zip5

そして同じこと…</p>

何か助けはありますか?

4

1 に答える 1

1

使用しているデータベースについては述べていませんが、列が集計関数に含まれていないというエラーが発生した場合は、集計関数に含まれていない列をに追加する必要がある場合がありますGROUP BY

select Market,
  zip5,
  count(zip5),
  MHI,
  MHV,
  TheTable 
from ImportantaRecords 
where TheTable = 'mg'
group by Market, Zip5, MHI, MHV, TheTable;

追加の列によるグループ化によって期待される結果が変わる場合は、サブクエリを使用して結果を取得できます。

select i1.Market,
  i1.zip5,
  i2.Total,
  i1.MHI,
  i1.MHV,
  i1.TheTable 
from ImportantaRecords i1
inner join
(
  select zip5, count(*) Total
  from ImportantaRecords
  where TheTable = 'mg'
  group by zip5
) i2
  on i1.zip5 = i2.zip5
where i1.TheTable = 'mg'
于 2013-05-02T15:57:08.027 に答える