Search code examples
phpmysqlyii2

Yii2 : How to write distinct SQL query?


I want to implement following SQL queries in Yii 2 but with no success.

This should give total number of unique company names:

SELECT count(DISTINCT(company_name)) FROM clients

And this should display company_name with client code and id(PK):

SELECT (DISTINCT(company_name,client_code)) FROM clients

How to achieve this?


Solution

  • Answering my own question I got following working solutions:

    Got the count for unique company_name:

    $my = (new yii\db\Query())
        ->select(['company_name',])
        ->from('create_client')
        ->distinct()
        ->count();
    echo $my;
    

    List of distinct company_name and client_code:

    $query = new yii\db\Query();
    $data = $query->select(['company_name','client_code'])
        ->from('create_client')
        ->distinct()
        ->all();
    if ($data) {
        foreach ($data as $row) {
            echo 'company_name: ' . $row['company_name'] . ' client_code: ' . $row['client_code'] . '<br>';
        }
    }