Пока вы не начнете заниматься действительно сложными запросами, SQL создается так, что он читается как естественное предложение. Итак, во-первых, если вы можете точно описать, что вы хотите из своего запроса, вы уже наполовину написали SQL.
В этом случае вы можете описать свою проблему следующим образом:
Получите lid
и общее количество уникальных IP
из моей таблицы для каждого lid
.
Осталось только перевести это, используя ключевые слова SQL. Важными здесь являются:
- get ->
SELECT
- count ->
COUNT
- уникальный ->
DISTINCT
- агрегат..для каждого ->
SELECT <aggregate function>..GROUP BY <field>
Итак, ваше предложение выше начинает выглядеть так:
SELECT
lid
и совокупность COUNT
из DISTINCT
IP
FROM
моего стола GROUP BY
lid
.
Удаление ненужных слов и очистка их для использования синтаксиса SQL оставляет окончательный запрос:
SELECT hits.lid, COUNT(DISTINCT hits.IP) AS uhits
FROM hits
GROUP BY hits.lid