0

order by後に返された結果セットで使用するgroup byと、グループ化の順序が乱れるというクエリ結果の問題に直面しています。

select a.location_id,a.feed_date 
  from p_article_table
  inner join m_misc_details l on a.location_id = l.misc_detail_id 
   and misc_master_id=2 
   and a.location_id in (1,2,4,5,6,7,8)
   and  convert(varchar(11),a.feed_date,108)<'09:01:00'
group by a.location_id,a.feed_date 
order by a.feed_date

私は何をすべきか ?

location_id で GROUP BY を実行した後の結果

1   
1
1
1
5
7
7
7
8

しかし、 feed_date で ORDER BY を使用した後、結果が乱れます

1 1 5 7 1 8 1 ..

4

1 に答える 1

2

グループ化操作は order by の影響を受けません。グループ化されたレコードが順序なしで返される順序は任意です。

これが欲しかったですか:

select a.location_id,a.feed_date 
  from p_article_table
  inner join m_misc_details l on a.location_id = l.misc_detail_id 
   and misc_master_id=2 
   and a.location_id in (1,2,4,5,6,7,8)
   and  convert(varchar(11),a.feed_date,108)<'09:01:00'
group by a.location_id, a.feed_date 
order by a.location_id, a.feed_date
于 2012-11-29T04:37:48.090 に答える