2012-05-02 14 views
5

Estoy tratando de construir una consulta que tiene un group by atributo, im truing para obtener el id y la count que me dice que el count (*) es columna no válido nombre ¿cómo podría obtener el count de la consulta group by?en criterios de Yii Cómo count (*)

+0

puede u PLS mostrar el código de trabajo – Gopesh

+0

utiliza usted método relations() o está intentando algo como 'Yii :: app() -> db-> createCommand() -> seleccionar ('id, nombre de usuario, perfil') -> desde ('tbl_user u') -> join ('tbl_profile p', 'u.id = p.user_id') -> donde ('id =: id', array (': id' => $ id)) -> queryRow(); ' –

+1

la respuesta es que tenemos que dar' 'count (*) '' alias como '' count (*) como count'' – Hilmi

Respuesta

14

Trabajos con alias. Yii 1.1.11. Falla otra

$criteria= new CDbCriteria(); 
$criteria=array(
      'group'=>'attribute', 
      'select'=>'id,count(*) AS cc' 
); 
+1

Entonces, ¿cómo puedo acceder a él entonces? '$ x = X :: model() -> findAll (...); $ x [0] -> cc' no funciona ... –

+1

Lo hace si agrego la variable en el modelo: 'clase X .. {public $ cc;'. Después de eso, el '$ x [0] -> cc' funciona. –

0
$criteria= new CDbCriteria(); 
$criteria=array(
      'group'=>'attribute', 
      'select'=>'id,count(*) AS cc', 
      'distinct'=>true, 
); 
2

Esto no es exactamente una respuesta a su pregunta, pero aún podría ser útil para usted. Si se utiliza el resultado sólo para buscar un cargo para un atributo específico, que no es necesario fecth toda una matriz, pero utiliza count método de Yii:

$criteria= new CDbCriteria(); 
$criteria.compare('col_name', $desired_col_value); 
$count = X::model()->count($criteria);