Я использую 2 sql запросов для получения разных результатов, но оба запроса возвращают один и тот же результат.Вот запросы:
mysql> select count(distinct(device_id)) from device_desktops where created_at >="2018-09-17";
+----------------------------+
| count(distinct(device_id)) |
+----------------------------+
| 3023 |
+----------------------------+
1 row in set (0.24 sec)
mysql> select count(distinct(device_id)) from device_desktops where created_at >="2018-09-17" and status="Pass";
+----------------------------+
| count(distinct(device_id)) |
+----------------------------+
| 3023 |
+----------------------------+
1 row in set (0.25 sec)
mysql> select count(distinct(device_id)) from device_desktops where created_at >="2018-09-17" and status="Fail";
+----------------------------+
| count(distinct(device_id)) |
+----------------------------+
| 1025 |
+----------------------------+
1 row in set (0.05 sec)
и это структура таблицы:
+------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| device_id | varchar(191) | NO | | NULL | |
| station | varchar(191) | NO | | NULL | |
| lower_limit | varchar(191) | NO | | NULL | |
| flag | varchar(191) | NO | | NULL | |
| test_description | text | NO | | NULL | |
| actual_result | varchar(191) | NO | | NULL | |
| upper_limit | varchar(191) | NO | | NULL | |
| time | varchar(191) | NO | | NULL | |
| hw_id | varchar(191) | NO | | NULL | |
| test_type | varchar(191) | NO | | NULL | |
| test_id | varchar(191) | NO | | NULL | |
| status | varchar(191) | NO | | NULL | |
| misc | varchar(191) | NO | | NULL | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
+------------------+------------------+------+-----+---------+----------------+
16 rows in set (0.00 sec)
Почему он возвращает одинаковый результат в первом и втором запросах сверху, в то время как третий запрос возвращает разныерезультат .. в чем ошибка в моем запросе.Любая помощь будет оценена ..
Я пробовал также этот запрос:
mysql> select count(distinct device_id ) from device_desktops where created_at >="2018-09-17" group by status;
+----------------------------+
| count(distinct device_id ) |
+----------------------------+
| 1025 |
| 119 |
| 3023 |
+----------------------------+
3 rows in set (0.46 sec)
Я также пытался этот запрос без отличных:
mysql> select count(device_id) from device_desktops where created_at >="2018-09-17";
+------------------+
| count(device_id) |
+------------------+
| 64744 |
+------------------+
1 row in set (0.06 sec)
mysql> select count(device_id) from device_desktops where created_at >="2018-09-17" and status="Fail";
+------------------+
| count(device_id) |
+------------------+
| 3628 |
+------------------+
1 row in set (0.07 sec)
mysql> select count(device_id) from device_desktops where created_at >="2018-09-17" and status="Pass";
+------------------+
| count(device_id) |
+------------------+
| 60964 |
+------------------+
1 row in set (0.08 sec)