powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Посчитать количество строк с одинаковыми значениями полей в таблице
11 сообщений из 11, страница 1 из 1
Посчитать количество строк с одинаковыми значениями полей в таблице
    #35966105
tblkoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица.
<Ключ><Поле1><Поле2><Поле3>
1 1 1 1
2 1 1 1
3 2 2 2
4 2 2 2
5 2 2 2

Необходимо получить другую таблицу

<Поле1><Поле2><Поле3><КОЛИЧЕСТВО>,
1 1 1 2
2 2 2 3

где количество - это количество строк таблицы, в которых значение полей 1,2 и 3 совпадают.

Как должен выглядеть запрос? Помогите, пожалуйста
...
Рейтинг: 0 / 0
Посчитать количество строк с одинаковыми значениями полей в таблице
    #35966106
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tblkoff,

INSERT INTO counters(col1,col2,col3,count)
SELECT col1,col2,col3,COUNT(*) count FROM data GROUP BY col1,col2,col3
...
Рейтинг: 0 / 0
Посчитать количество строк с одинаковыми значениями полей в таблице
    #35966116
tblkoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
an0nym,

блинннн...Супер. Спасибо.
ЗЫ сори, что отвлекаю по пустякам
...
Рейтинг: 0 / 0
Посчитать количество строк с одинаковыми значениями полей в таблице
    #35966121
tblkoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
an0nym,
Не сочтите за наглость,
Позвольте отнять у Вас еще минуту времени. (У меня то час займет...)

По соседству с полученной таблицей col1,col2,col3,Count лежит точно такая же(1 в 1), где Count задано руками.
Как получить таблицу col1, col2, col3, DIFFERENT , где Different - разность между Count`ами соответствующих строк таблиц?

t1
1 1 1 7
2 2 2 6

t2
1 1 1 10
2 2 2 12
3 3 3 7

результат -
1 1 1 3
2 2 2 6
3 3 3 7

Если не сложно...
...
Рейтинг: 0 / 0
Посчитать количество строк с одинаковыми значениями полей в таблице
    #35966134
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tblkoff,

в общем случае
SELECT col1,col2,col3,data1.count-data2.count difference
FROM data1 JOIN data2 USING(col1,col2,col3)

если не заработает
SELECT data1.col1,data1.col2,data1.col3,data1.count-data2.count difference
FROM data1 JOIN data2 ON data1.col1=data2.col1 AND data1.col2=data2.col2 AND data1.col3=data2.col3
...
Рейтинг: 0 / 0
Посчитать количество строк с одинаковыми значениями полей в таблице
    #35966135
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поторопился, по указанным данным INNER JOIN не подойдет
...
Рейтинг: 0 / 0
Посчитать количество строк с одинаковыми значениями полей в таблице
    #35966142
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT 
	 ISNULL(t1.col1,t2.col1) col1
	,ISNULL(t1.col2,t2.col2) col2
	,ISNULL(t1.col3,t2.col3) col3
	,CASE 
		WHEN t1.col1 IS NULL THEN -t2.count
		WHEN t2.col1 IS NULL THEN t1.count
		ELSE t1.count-t2.count
	END difference
 FROM t1 FULL JOIN t2 ON(t1.col1=t2.col1 AND t1.col2=t2.col2 AND t1.col3=t2.col3)
...
Рейтинг: 0 / 0
Посчитать количество строк с одинаковыми значениями полей в таблице
    #35966150
tblkoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
an0nym,

ОГРОМНОЕ спасибо. сам бы я такое неделю придумывал....
...
Рейтинг: 0 / 0
Посчитать количество строк с одинаковыми значениями полей в таблице
    #36017236
tblkoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сорри за некрофилию, у меня снова вопрос по этой же теме....

переношу проект на Compact Edition 3.1, переписываю этот запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT ISNULL([Штатное_Расписание].[Код_Отдела], tmp.[Код_Отдела]) AS Код_Отдела, 
	   ISNULL([Штатное_Расписание].[Код_Должности], tmp.[Код_Должности]) AS Код_Должности, 
	   ISNULL([Штатное_Расписание].Квалификация, tmp.Квалификация) AS Квалификация, 
           CASE 
	       WHEN Штатное_Расписание.Код_Отдела IS NULL 
	            THEN - tmp.Количество 
	       WHEN tmp.Код_Отдела IS NULL 
                    THEN Штатное_Расписание.Количество 
		    ELSE Штатное_Расписание.Количество - tmp.Количество 
	   END 
		AS difference, 
	  Отдел.[Наименование_Отдела], 
          Должность.[Наименование_Должности]
FROM            [Штатное_Расписание] 
INNER JOIN      Должность ON [Штатное_Расписание].[Код_Должности] = Должность.[Код_Должности] 
INNER JOIN      Отдел ON [Штатное_Расписание].[Код_Отдела] = Отдел.[Код_Отдела]
FULL OUTER JOIN       tmp ON( [Штатное_Расписание].[Код_Отдела] = tmp.[Код_Отдела] 
				AND [Штатное_Расписание].[Код_Должности] = tmp.[Код_Должности] 
				AND [Штатное_Расписание].Квалификация = tmp.Квалификация)

и получаю ошибку на строке FULL ....

В чем может быть дело? Compact edition не работет с FULL JOIN ?? ПЛИЗЗЗ хелп..
...
Рейтинг: 0 / 0
Посчитать количество строк с одинаковыми значениями полей в таблице
    #36017276
Фотография mista2009
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tblkoff,

Описание ошибки выложи сюда. Похоже не может найти таблицу tmp.
...
Рейтинг: 0 / 0
Посчитать количество строк с одинаковыми значениями полей в таблице
    #36017313
tblkoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mista2009,

There was an error parsing the query. [ Token line number = 17,Token line offset = 1,Token in error = FULL ]

больше ничего...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Посчитать количество строк с одинаковыми значениями полей в таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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