2012-02-07 19 views
2

私はデータベースを持っており、それぞれのシステムに現在のモデルと新しいモデルを伝えています。 (各行にはシステム名、現在のモデル、新しいモデルがあります)結果を現在のモデルと新しいモデルでグループ化する必要があります。したがって、現在のモデルと新しいモデルが同じ場合は、1つの結果が必要です。私はそれを働かせることができましたが、私はまた、各グループにいくつのシステムがあるか知る必要があります。どうやってやるの?イム使用してCI各GROUP BY結果の行数を調べる

これは私のクエリ

$query2 = $this->db->query('SELECT * FROM rollout_systems WHERE scope_ID = '.$id.' GROUP BY EAM_Model, new_Model'); 

(EAM_Model =現行モデル)私は十分に明らかにしている場合

は分からないです。私は、現在のシステム、新しいシステム、およびそのグループ内のシステムの数を表示できる必要があります。 3行が現在のシステムとして「何とか」とそこに「blahblah」新しいシステムを持っている場合

だから、私はそれが言いたい 電流:ブラブラ 新:システムの何とか何とか 数:3

+1

「SELECT * .... GROUP BY field1、field2'はナンセンスです。何を正確に取得しようとしていますか? rollout_systemsの – JNK

+0

にはシステムのリストがあります。各行(システム)には現在のモデルと新しいモデルがあります。 2つ以上の行が同じ現在の新しいモデルをグループ化している場合は、そのようにしたいと思います。しかし、私はまた、各グループにいくつの行(システム)があるかを知る必要があります –

+0

あなたは見たいフィールドを選ぶ必要があります。実際に集約が実際にどのように機能するかについては、ただ読んでおくべきです。私はあなたが 'GROUP'の動作方法について混乱していると思います。 – JNK

答えて

2

それ同じステートメントでselect *とgroupを行うのは意味がありません。グループ化する列は選択する必要がありますが、count(*)などの集計関数を選択する必要があります。いつa群など...あなただけのアイテムの数は、SELECT EAM_Model, new_Model, COUNT(*) FROMを使用したい場合は

SELECT EAM_Model, new_Model, count(*) 
FROM rollout_systems 
WHERE scope_ID = '.$id.'    
GROUP BY EAM_Model, new_Model 
+0

しかし、この結果は、現在のモデルと新しいモデルとグループの行数を教えてくれますか? –

+0

はい、EAM_Model |が返されます。 new_Model | row_count –

0

:私は、私は完全にあなたがやろうとしているか理解していないが、私はあなたのような何かをしたいと思いますクエリでは、通常はCOUNTやSUMのような集計を実行する必要があります。それ以外の場合は、データをグループ化することは意味がありません。 ;

0

$ QUERY2 =の$ this - > DB->クエリ(。。$のID 'EAM_Model、new_Model BY GROUP' 'rollout_systems FROM WHERE scope_ID = COUNT(*)をSELECT')

これはあなたが求めているのですか?

+0

いいえ、それはEAM_Modelとnew​​_modelを返さないためです。 –

関連する問題