Я пытаюсь создать запрос, который немного сложнее, чем все, что я делал в моем ограниченном опыте работы с базами данных.
TABLE:
id - data - type - data3
1 - hello - 1 - 1
2 - goodbye - 1 - 1
3 - goodbye - 1 - 2
4 - goodbye - 2 - 1
5 - hello - 2 - 1
Цель состоит в том, чтобы сделать 4 вещи:
- Сгруппировать результаты по «данным», но вернуть только один результат / строку каждого
тип данных.
- СЧИТАЙТЕ общее количество каждой "ГРУППЫ данных" и возвращайте это число.
- Сделайте это для обоих "type" = 1 и "type" = 2, хотя мне нужен только каждый
Элемент "data" GROUP один раз.
- возможность сортировки результатов по каждому элементу SELECT.
Таким образом, возвращаемый конечный результат должен быть (извините, что запутал!):
data, COUNT(data["type"]=1), COUNT(data["type"]=2 AND data["data"] = data)
Итак, для приведенной выше таблицы образцов желаемые результаты будут:
loop 1 - hello, 2, 1
loop 2 - goodbye, 3, 1
Тогда, в идеале, я мог бы отсортировать результаты по любому из них.
Это запрос, который я пытался построить, прежде чем прибегнуть к публикации, я не думаю, что это даже близко к правильности, но это может помочь проиллюстрировать то, чего я пытаюсь достичь немного лучше:
SELECT
(
SELECT `clicks_network_subid_data`, COUNT(*)
FROM track_clicks
WHERE `clicks_campaign_id`='$id' AND `clicks_click_type` = '1'
) AS keywords,
(
SELECT COUNT(*)
FROM track_clicks
WHERE `clicks_campaign_id`='$id' AND `clicks_click_type` = '2' AND `clicks_network_subid_data` = keywords.clicks_network_subid_data
) AS offer_clicks
GROUP BY keywords.clicks_network_subid_data
ORDER BY keywords.COUNT(*) DESC
Мне также нужно выполнить JOIN для другой таблицы, чтобы получить еще один фрагмент данных, но я думаю, что справлюсь с этим, как только выясню эту часть.