Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 11.02.2008, 18:37   #1
Mary_star
Пользователь
 
Регистрация: 11.02.2008
Сообщений: 13
Репутация: 10
Восклицание Выборка уникальных значений

Здравствуйте программисты! Имеется таблица в которой один столбец к1 имеет уникальные значения, а второй к2 повторяющиеся. Нужно посчитать количество к1 для каждого значения к2. И вывести их. Но так чтобы в результирующем наборе были абсолютно все значения столбца к2, даже если количество какого-нибудь значения будет равно 0
Mary_star вне форума   Ответить с цитированием
Старый 11.02.2008, 20:42   #2
mihali4
*
Профессионал
 
Регистрация: 22.11.2006
Адрес: Москва
Сообщений: 9,201
Репутация: 2695
По умолчанию

Цитата:
абсолютно все значения столбца к2, даже если количество какого-нибудь значения будет равно 0
Это как понимать? Загадками говорите!
mihali4 вне форума   Ответить с цитированием
Старый 11.02.2008, 21:20   #3
Mary_star
Пользователь
 
Регистрация: 11.02.2008
Сообщений: 13
Репутация: 10
По умолчанию

Это значит количество значений столбца к1 может быть равно 0 и в этом случае должно вывести значение из столбца к2 и значение 0 для столбца к1. А у меня эти стоки вообще не выводятся, просто пропускаются.
Mary_star вне форума   Ответить с цитированием
Старый 11.02.2008, 21:29   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
Репутация: 590
По умолчанию

Что есть "количество значений столбца к1 может быть равно 0" по-прежнему непонятно, но может поможет вот это:

SELECT ifnull(k1, 0) as k1, k2 FROM .........;
B_N вне форума   Ответить с цитированием
Старый 11.02.2008, 22:07   #5
Mary_star
Пользователь
 
Регистрация: 11.02.2008
Сообщений: 13
Репутация: 10
По умолчанию

мне выает сообщение об ошибке "'Ifnull' - не признанное встроенное функциональное название(имя)."

"количество значений столбца к1 может быть равно 0"

в смысле:
select count(k1), k2 from.....
group by k2

не выводит значения к2, если count(k1) = 0, т.е строчку пропускает.
можно ли сделать так чтобы выводило:
0 и к2
Mary_star вне форума   Ответить с цитированием
Старый 11.02.2008, 22:48   #6
mihali4
*
Профессионал
 
Регистрация: 22.11.2006
Адрес: Москва
Сообщений: 9,201
Репутация: 2695
По умолчанию

Цитата:
select count(k1)
Пардон, но это же бред сивой кобылы, ибо сказано в писании (то бишь в вашем первом сообщении):
Цитата:
столбец к1 имеет уникальные значения
И чего ради их считать? Считать-то надо К2, ибо
Цитата:
а второй к2 повторяющиеся
Извольте объясниться...
А еще лучше, дабы отойти от тарабарщины, признавайтесь, что там у вас за информация в этих полях? Так может и поймем, что же на самом деле посчитать надобно...
mihali4 вне форума   Ответить с цитированием
Старый 11.02.2008, 23:14   #7
Mary_star
Пользователь
 
Регистрация: 11.02.2008
Сообщений: 13
Репутация: 10
По умолчанию

Вообщем есть 2 таблицы:
1. Category:
CategoryID Category
---------- ------------
1 Triller
2 Romantic
3 Horror
4 War
5 Sci-fi
6 Historical
7 New
2. Films:
filmName categoryID
---------- -----------
The Dirty 4
On Golden 2
The Lion, 3
Nightmare 3
The Wide 5
Sense 6
Planet 4
The Maltese 1
15th Late 6
Soylent 5
One flew 3
Raging 1
The Life 1
Gone With 6
The Good 6

Мне нужно посчитать количество фильмов для каждой категории (Category). Но нужно чтобы в результирующем наборе присутствовали все имена категорий, независимо от того есть ли фильмы данной категории или нет. И если таких фильмов нет то вывести 0
Mary_star вне форума   Ответить с цитированием
Старый 11.02.2008, 23:25   #8
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
Репутация: 590
По умолчанию

Вот так не то?
select table1.Category, (select count(table2.filmName) from table2 where table2.categoryID = table1.CategoryID) as _count from table1
B_N вне форума   Ответить с цитированием
Старый 11.02.2008, 23:31   #9
Mary_star
Пользователь
 
Регистрация: 11.02.2008
Сообщений: 13
Репутация: 10
По умолчанию

Спасибо большое, B_N. Все получилось.
Mary_star вне форума   Ответить с цитированием
Старый 11.02.2008, 23:46   #10
mihali4
*
Профессионал
 
Регистрация: 22.11.2006
Адрес: Москва
Сообщений: 9,201
Репутация: 2695
По умолчанию

Цитата:
Мне нужно посчитать количество фильмов для каждой категории (Category). Но нужно чтобы в результирующем наборе присутствовали все имена категорий, независимо от того есть ли фильмы данной категории или нет. И если таких фильмов нет то вывести 0
Ну вот, сразу все понятно стало.
И все потому, что никак не совпадает с вопросами, задававшимися первыми...
mihali4 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выборка нужных значений, вывод AZaharov Microsoft Office Excel 19 17.10.2008 12:22
выборка предыдущих значений(курсы валют)) alehandro Microsoft Office Access 1 29.04.2008 23:57
Выборка значений ячеек DBGrid Македонский БД в Delphi 3 05.12.2007 08:10
выборка Ser_gl Microsoft Office Excel 1 24.08.2007 20:49
Выборка John_chek БД в Delphi 10 27.06.2007 08:43


19:34.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.