Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Результат count(*) не соответствует действмтеотности / 16 сообщений из 16, страница 1 из 1
15.02.2016, 10:33:14
    #39171038
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
Здравствуйте.
Почему
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT count(*)
FROM
    `sdr`
        JOIN
    `s_m` ON `sdr`.`n` = `s_m`.`n_sdr`
WHERE
    `s_m`.`n_mtk` IN ('516' , '517')
GROUP BY `s_m`.`n_sdr`
HAVING COUNT(`s_m`.`n_sdr`) = '2'


возвращает 2 (это неправильно), а
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT *
FROM
    `sdr`
        JOIN
    `s_m` ON `sdr`.`n` = `s_m`.`n_sdr`
WHERE
    `s_m`.`n_mtk` IN ('516' , '517')
GROUP BY `s_m`.`n_sdr`
HAVING COUNT(`s_m`.`n_sdr`) = '2'


только одну строку (это правильно)?
...
Рейтинг: 0 / 0
15.02.2016, 10:56:03
    #39171054
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
И то, и другое - правильно.
...
Рейтинг: 0 / 0
15.02.2016, 11:01:07
    #39171063
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
Но мне нужно узнать количество строк, а каунт почему-то возвращает 2, когда строк, подходящих одна. Почему так?
...
Рейтинг: 0 / 0
15.02.2016, 12:46:38
    #39171238
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
andrejkкаунт почему-то возвращает 2, когда строк, подходящих одна. Почему так?
Да ни хрена не одна! GROUP BY убери - увидишь, что их две.
...
Рейтинг: 0 / 0
15.02.2016, 17:09:44
    #39171576
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
А как тогда учесть каунт?
...
Рейтинг: 0 / 0
15.02.2016, 17:11:50
    #39171582
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
andrejkкак тогда учесть каунт?
каунт ЧЕГО? над этим вопросом ты, походу, даже не думал... а зря.
...
Рейтинг: 0 / 0
15.02.2016, 17:23:42
    #39171596
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
Каунт сгруппированных строк без учёта количества в группах. Число групп короче.
...
Рейтинг: 0 / 0
15.02.2016, 17:33:06
    #39171612
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
То есть нужно сгруппировать, а потом подсчитать количество групп. То есть ДВА последовательных уровня группировки.
Вывод - группировка в подзапросе со всеми условиями, и (неявная) группировка во внешнем запросе.
...
Рейтинг: 0 / 0
15.02.2016, 17:44:01
    #39171626
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
Что значит неявная? Я не понимаю.
...
Рейтинг: 0 / 0
15.02.2016, 19:08:52
    #39171730
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
Короче всё, не актуально.
...
Рейтинг: 0 / 0
15.02.2016, 20:14:38
    #39171783
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
andrejkЧто значит неявная? Я не понимаю.По всему массиву данных, без предложения GROUP BY в тексте запроса.
...
Рейтинг: 0 / 0
15.02.2016, 21:43:35
    #39171837
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
Решено:

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT COUNT(*) AS `kol`
	FROM
    (SELECT COUNT(*)
    FROM `sdr` JOIN `s_m` ON `sdr`.`n` = `s_m`.`n_sdr`
    WHERE `s_m`.`n_mtk` IN ('516' , '517')
    GROUP BY `s_m`.`n_sdr`
    HAVING COUNT(`s_m`.`n_sdr`) = '2') as `t`
...
Рейтинг: 0 / 0
16.02.2016, 07:04:13
    #39171923
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
а внутри-то каунт нахрена?
...
Рейтинг: 0 / 0
16.02.2016, 07:33:31
    #39171927
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
Ну что-то ж выбрать надо, а мне ни данные, ни их число в группах не нужно. Ну, выбрал число в группах.
...
Рейтинг: 0 / 0
16.02.2016, 07:37:41
    #39171928
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
andrejkНу что-то ж выбрать надоselect 1
...
Рейтинг: 0 / 0
16.02.2016, 08:23:33
    #39171936
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат count(*) не соответствует действмтеотности
tanglirandrejkНу что-то ж выбрать надоselect 1
О, спасибо.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Результат count(*) не соответствует действмтеотности / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]