Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как правильно посчитать количество записей по условию / 11 сообщений из 11, страница 1 из 1
27.11.2018, 13:51
    #39739123
akrush
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно посчитать количество записей по условию
Подскажите как лучше всего посчитать количество уникальных записей. Уникальность проверяется по 3 полям.
Делаю так:
Код: sql
1.
select count(app_num) from (select DISTINCT app_num, cal_num, code_jeo from SERVICE)



Тестовый пример маленький и результат выдает достаточно быстро - 286 записей. в плане видно 368 чтений из кеша.
Понимаю что для большой таблицы - это будет достаточно долго.


--------------------------
Firebird 3.0.4.33054;
IBExpert 2018.5.14.1;
Windows 10 32-bit;
4Gb RAM;
SSD 512Mb + HDD 1 Tb;
Настройки по умолчанию

Среда разработки:
Delphi XE2 + FIBPlus 7.4
...
Рейтинг: 0 / 0
27.11.2018, 14:04
    #39739133
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно посчитать количество записей по условию
select count(DISTINCT app_num||cal_num||code_jeo) from SERVICE
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.11.2018, 14:06
    #39739135
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно посчитать количество записей по условию
Лучше всего количество вообще не считать. Сэкономленную энергию - направить на что-то
полезное.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.11.2018, 14:20
    #39739143
akrush
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно посчитать количество записей по условию
Dimitry SibiryakovЛучше всего количество вообще не считать. Сэкономленную энергию - направить на что-то
полезное.


Не спорю, но я веду разбор 1 таблицы на 3 и мне надо сравнить количество записей - все ли перенеслись или какая-то запись не попала.
...
Рейтинг: 0 / 0
27.11.2018, 14:22
    #39739144
Фэйтл Эра
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно посчитать количество записей по условию
akrushDimitry SibiryakovЛучше всего количество вообще не считать. Сэкономленную энергию - направить на что-то
полезное.


Не спорю, но я веду разбор 1 таблицы на 3 и мне надо сравнить количество записей - все ли перенеслись или какая-то запись не попала.
После "разбора" выбросишь исключение, если какая-то не попала?:)
...
Рейтинг: 0 / 0
27.11.2018, 14:29
    #39739148
akrush
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно посчитать количество записей по условию
Фэйтл ЭраПосле "разбора" выбросишь исключение, если какая-то не попала?:)

Нет, надо найти причину. Записи должны быть все.
...
Рейтинг: 0 / 0
27.11.2018, 14:30
    #39739149
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно посчитать количество записей по условию
27.11.2018 14:20, akrush пишет:

> мне надо сравнить количество записей - все ли перенеслись или какая-то запись не попала.

как это она может "не попасть" ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.11.2018, 14:31
    #39739150
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно посчитать количество записей по условию
akrushя веду разбор 1 таблицы на 3 и мне надо сравнить количество записей - все ли перенеслись
или какая-то запись не попала.

Сравнивай простой count() из старой таблицы и count() из запроса, делающего из новых
таблиц старую.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.11.2018, 14:50
    #39739164
akrush
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно посчитать количество записей по условию
Прошу у всех прощения, но я не все написал.
В старой 1 таблице данные по столбцам: услуга 1, услуга 2 ... услуга 8. Есть еще связанные аналогично столбцы: начисленоN и оплаченоN.
В новой таблице столбцы переводятся в строки.

Есть поле в котором перечислены побитно какие услуги задействованы. Но может быть так что ввели просто общую сумму начислено и оплата, без выбора услуг, в этом случае побитное поле равно 0 (это логично, т.к. нет перечня услуг)
Я уже определил что, в последнем случае, я терял записи так ориентировался только на наличие перечня услуг.
Внес исправления в программу, но вот подумал - а может еще что-то теряется.

Выборку по количеству я думал сделать по ключевым полям которые есть в старой и новой таблице.
Да, я не спорю что можно потерять какую-то услугу. Над этим я тоже работаю.
Пока у меня цель получить одинаковое количество записей по выбранным ключевым полям.
...
Рейтинг: 0 / 0
27.11.2018, 15:00
    #39739169
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно посчитать количество записей по условию
akrush,

если операция разовая, то не стоит убиваться над оптимизацией. Если нет, то стоит серьезно пересмотреть логику работы, таких проверок быть не должно.
...
Рейтинг: 0 / 0
27.11.2018, 15:40
    #39739199
akrush
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно посчитать количество записей по условию
Симонов Денисakrush,

если операция разовая, то не стоит убиваться над оптимизацией. Если нет, то стоит серьезно пересмотреть логику работы, таких проверок быть не должно.

Скажем так - это продолжение темы "кларион отфаербердить" ;)
Операция будет разовая, но, на сегодняшний день, повторятся у 217 клиентов. У десятки из них 2-4 базы.
Сам контролировать процесс на 100% не смогу, поэтому делаю разного рода протоколы и контроли.
Если увижу что то что не конвертировалось - серьезная ошибка, планирую выдать сообщение о приостановке конвертации и обращения к разработчику.
Но думаю таких будет не много. Основная масса справится самостоятельно.

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


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