/ / Wybierz pole ignorowania zapytania - mysql, sql

Wybierz pole Zignoruj ​​zapytanie - mysql, sql

Mam tabelę o nazwie test z poniższymi wartościami. Chcę pobrać liczbę użytkowników korzystających z otwartego identyfikatora.

----+----------+-----------+
| NAME   | PROVIDER | OPERATION |
+--------+----------+-----------+
| Samuel | Google   | P         |
| Samuel | Google   | V         |
| Kannan | Google   | V         |
| George | Google   | V         |
| Bush   | Google   | V         |
| Bush   | Yahoo    | V         |
+--------+----------+-----------+

Pytanie: select distinct(Name) from test group by PROVIDER

Wynik:

+-----------------------+----------+
| count(distinct(NAME)) | PROVIDER |
+-----------------------+----------+
|                     4 | Google   |
|                     1 | Yahoo    |
+-----------------------+----------+

W tym zapytaniu chcę zignorować liczbę operacji użytkownika P dla DOSTAWCY. Jak mogę to zrobić w jednym zapytaniu?

Wyjście powinno być

+-----------------------+----------+
| count(distinct(NAME)) | PROVIDER |
+-----------------------+----------+
|                     3 | Google   |
|                     1 | Yahoo    |
+-----------------------+----------+

Odpowiedzi:

4 dla odpowiedzi № 1

Spróbuj tego,

SELECT  `Provider`, COUNT(DISTINCT Name)
FROM    tableName
WHERE   NAME NOT IN
(
SELECT Name
FROM tableName
WHERE Operation = "P"
)
GROUP BY Provider

0 dla odpowiedzi nr 2
select count(distinct(Name)) from test where operation != "P" group by PROVIDER;