/ / SQL Distinct не може працювати, якщо має підрахунок пункту - mysql, sql

SQL Distinct не може працювати, якщо маєте параметр count - mysql, sql

У мене виникають проблеми зі своїм запитом sql (Виберіть окрему роботу не).

Мій sql:

select distinct
count(T2.Column1)
from Table1 t2
where T2.Column1="2017-05-210"

Фактичні дані стовпця 1 мають лише 3 дані, Але вихід є 12

Nb: - Дані стовпця1 мають ситуацію від 1 до багатьох у Column2,

Ось фактичні дані:

Column 1    Column 2
1          A
1          B
1          C
1          D
2          A
2          B
2          C
2          D
3          A
3          B
3          C
3          D

Хтось може мені допомогти? Дуже цінуємо за вашу увагу.

Дякую!

Відповіді:

0 для відповіді № 1

Ви хочете порахувати різні значення, так і зробіть count(distinct ):

select count(distinct T2.Column1)
from Table1 t2
where T2.Column1="2017-05-210"

(Однак ваші вибіркові дані та дані / стовпці запиту не збігаються.)


0 для відповіді № 2

Ваші зразкові дані, результат та запит не відповідають.

Однак ваш запит:

  1. Знайдіть усі записи з a column1 = "2017-05-210".
  2. Порахуйте всі ці записи де column1 не є нульовим (що справедливо для всіх цих записів, як column1 = "2017-05-210")
  3. У результаті виходить одне число (один рядок, один стовпець). Але ви додатково кажете з DISTINCT що ви хочете видалити будь-які дублікати з результативних рядків. Тільки з одного рядка не може бути дублікатів, тому функція тут зайва.

Тож подумайте, що ви хочете насправді порахувати. Ви рахуєте різні значення (тобто рахуєте ігнорування дублікатів) за допомогою COUNT(DISTINCT column), але COUNT(DISTINCT column1) повернув би 1 звичайно, тому що ви тільки шукаєте один значення, яке є "2017-05-210" (або нуль, якщо немає запису, відповідного цьому значенню).