Как получить только одну из строк, которые отличаются? - PullRequest
0 голосов
/ 30 июня 2011

Я делаю модуль php новостной рассылки , который имеет список очередей (поэтому мой файл cron может посылать ему определенное количество писем за минуту), и я не хочупоказывать в бэк-офисе, если в бюллетене есть электронные письма в очереди и сколько, поэтому, чтобы сэкономить время обработки, я не хочу получать каждый бюллетень и переходить по полю, если в нем есть электронные письма для отправки.

Итак, представьте себе эту структуру в NEWSLETTER_QUEUE таблице:

NEWSLETTER_ID   EMAIL
1           test1@hotmail.com
1           test2@hotmail.com
1           test3@hotmail.com
1           test4@hotmail.com
2           test2@hotmail.com
2           test3@hotmail.com
2           test4@hotmail.com
3           test4@hotmail.com

Я только не хочу получать значения:

NEWSLETTER_ID   COUNT(EMAIL)
1               4
2               3
3               1

Итак, обычно я запрашиваю новостную рассылкупо новостной рассылке и проверьте, что она отправляет в ожидании и рассчитывать, но я не хочу экономить время обработки.

Ответы [ 3 ]

4 голосов
/ 30 июня 2011
SELECT newsletter_id, COUNT(email)
FROM newsletter_queue 
GROUP BY newsletter_id
2 голосов
/ 30 июня 2011

Вы хотите использовать GROUP BY.

SELECT NEWSLETTER_ID,COUNT(EMAIL) FROM NEWSLETTER_QUEUE GROUP BY NEWSLETTER_ID 

http://www.w3schools.com/sql/sql_groupby.asp

1 голос
/ 30 июня 2011

Простая группа должна это сделать?

select
  NEWSLETTER_ID,
  COUNT(1) as [COUNT(EMAIL)]
from
  NEWSLETTER_QUEUE 
group by
  NEWSLETTER_ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...