Считать строки в MySQL? - PullRequest
       4

Считать строки в MySQL?

0 голосов
/ 10 октября 2011

У меня есть запрос, который возвращает 20 строк.

select year( ArticleDate )
from NewsData nd
inner join NewsCategories nc on nd.DirectNewsID = nc.DirectNewsID
where nd.Deleted = 0
and year( nd.ArticleDate ) = 2006
group by nd.DirectNewsID;

Возможно ли получить это, чтобы вернуть одну строку с номером 20, за которым следует год в разделе and?

Конечный запрос не будет содержать and year( nd.ArticleDate ) = 2006, поэтому он будет возвращать одну строку в год с количеством.Я добавил and year( nd.ArticleDate ) = 2006 только для целей тестирования.

Возможно ли это?

Ответы [ 4 ]

2 голосов
/ 10 октября 2011

Как-то так?

select year(nd.ArticleDate), COUNT(DISTINCT nd.DirectNewsID)
from NewsData nd
inner join NewsCategories nc on nd.DirectNewsID = nc.DirectNewsID
where nd.Deleted = 0
group by year(nd.ArticleDate);

РЕДАКТИРОВАТЬ

Теперь он подсчитывает различные вхождения nd.DirectNewsID в каждом году.

1 голос
/ 10 октября 2011

Попробуйте:

select year( nd.ArticleDate ), count(*)
from NewsData nd
inner join NewsCategories nc on nd.DirectNewsID = nc.DirectNewsID
where nd.Deleted = 0
and year( nd.ArticleDate ) = 2006
group by year( nd.ArticleDate );

Замените count(*) на count(distinct nd.DirectNewsID), если целью является определение номера DirectNewsID вместо общего количества строк.

0 голосов
/ 10 октября 2011

Вы можете просто использовать метод подсчета, чтобы получить общее количество строк.то есть

select count(*) from NewsData nd inner join NewsCategories nc  where nd.Deleted = 0, nd.DirectNewsID =  c.DirectNewsID  and year( nd.ArticleDate ) = 2006  

Проверьте это .. это должно работать согласно вашей потребности

0 голосов
/ 10 октября 2011

Вы можете использовать метод count. Смотри: http://www.tizag.com/mysqlTutorial/mysqlcount.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...