|
|
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 23:16:14 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Уточните, пожалуйста вопрос - я так ничего не понял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 23:22:45 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
как подсчитать уникальное количество полей. Есть таблица поля: cod, date, Num_Document. Повторяются значения date. Вопросик: как посчитать количество строк для cod. Заранее благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 23:26:19 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
И опять неясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 02:09:01 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Вопрос действительно непонятен. Может, индекс UNIQUE на поле date? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 08:02:28 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
1. Если Вам нужно пересчитать количество записей по полю date (т.е. все записи вообще) select count(date) from tablename 2. Если неповторящиеся значения по полю date select count(date) distinct from tablename Не забудьте при этом присвоить получаемые значения либо через set @datecount = одна из вышестоящих выборок либо через одна из стоящих выборок into cursor (или table) cursorname (или tablename) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 09:08:41 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 10:40:52 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
прошу прощения за неточную постановку вопроса, я новичок как в програмировании, так и на форумах. Нужно посчитать количество записей для каждого кода (поле cod), но чтобы повторяющиеся записи были исключены, ну что-то типа select distinct COD, date from table1 group by cod, date into cursor curtable -> select curtable -> count for (cod = 1) to colcod, если возможно это сделать опираясь на индексы таблицы table1 (в таблице около 9млн. записей) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 14:33:03 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
urmas1. Если Вам нужно пересчитать количество записей по полю date (т.е. все записи вообще) select count(date) from tablename 2. Если неповторящиеся значения по полю date select count(date) distinct from tablename Не забудьте при этом присвоить получаемые значения либо через set @datecount = одна из вышестоящих выборок либо через одна из стоящих выборок into cursor (или table) cursorname (или tablename) Такую конструкцию, into cursor, я примерно понимаю, но с использованием SQL работает очень долго (записей около 9млн.), а если создать таблицу COPY TO curTable FIELDS cod, date работает быстрее, но от этого количество записей меньше не становиться, вот если бы исключить повторения в поле date, было бы то что надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 14:52:26 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Ну, так прямо и считай: Код: plaintext В результате получишь количество уникальных значений поля Date в пределах каждого значения поля COD Для сравнения, посмотри содержимое 3 столбца, то что возвращает COUNT(*) - это вообще общее количество записей для каждого значения поля COD Если нужно что-то другое, то напиши код, как ты это рассчитываешь. Со словами у тебя как-то не очень получается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 15:50:53 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Спасибо ВладимирМ, работает (не знал про сочетание count(distinct)). А если возможность сделать это без SQL, может даш ссылочку, что почитать. Ещё раз большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 16:33:34 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
VanGuardвозможность сделать это без SQL Зачем? Быстрее не будет однозначно! Тебе же не хочется морочить себе голову ненужными индексами и кучей COUNT'ов в каком-нибудь цикле? Тем более, что сразу можешь получить красивую табличку, а не набор переменных... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 16:56:21 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Без SQL будет примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 17:12:30 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Спасибо всем ответил, надеюсь правильно понял про INDEX ... UNIQUE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 18:38:07 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Hi VanGuard! INDEX ... UNIQUE это своеобразный фильтр - если есть повторяющиеся значения ключа, то он "скрывает" всё кроме первого. Для твоей задачи подойдёт, хотя через SQL проще, красивее и быстрее (особенно если есть индексы по коду и дате). Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 03:05:35 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov ..... , хотя через SQL проще, красивее и быстрее (особенно если есть индексы по коду и дате). Posted via ActualForum NNTP Server 1.1 Спасибо за ответ, но может подскажете, а как в запросе использовать индекс *.CDX, тэг по коду и дате есть, (или чтоб много не писать дадите ссылочку), а может надо перед перед SQL открыть таблицу по этому тэгу. (Не дайте помереть неучем). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 08:13:19 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
VanGuardкак в запросе использовать индекс *.CDX Достаточно того, что он существует! Остальное - не Ваша проблема! ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 11:02:22 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Redrik VanGuardкак в запросе использовать индекс *.CDX Достаточно того, что он существует! Остальное - не Ваша проблема! ;-)Крохотное уточнение. Сами открываются вместе с таблицей только структурные индексы (те, у которых * = имени таблицы, которые лежат рядом с таблицей и когда в таблице установлен флаг, что она имеет структурный индекс). В общем случае, *.cdx может быть и неструктурным индексом, тогда его потребуется открыть отдельно. Я не буду сейчас вдаваться в кучу других проблем неструктурных индексов, в частности, связанных с ситуацией, когда таблицу открыли, индекс забыли, запись добавили, потом индекс открыли - а он уже не соответствует табличке, т.е. битый. Но мы же с вами правильные, мы же используем индексы только структурные, не так ли? ;-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 11:39:41 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Опять моя ошибка в вопросе, я не указал, что индекс неструктурный. Исправить ситуацию не могу, надеюсь что игнорировать не будете, если скажу, что я не программист, а только оператор БД, но по какой-то причине у нас нет поддержки разработчиков, хотя было в начале всё ОК, вот жизнь и заставила, хотя я не сильно упирался, заниматься выборками из таблиц и задавать Вам эти глупые вопросы. И считаю, что тема "Уникальность данных без SQL" для меня закрыта, т.к. своими вопросами могу запутать кого угодно, а в ответах могу утонуть. Буду пока читать книгу М.Базияна, а вдруг поможет. Спасибо всем за внимание, а особенно за советы и любые объяснения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2005, 02:58:47 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Hi VanGuard! Использовать зачем? Чтобы он "фильтровал" дубли? AFAIK это невозможно в принципе. Только старые XBase команды (SCAN, SKIP, REPLACE...) и только при "активности" данного индекса (тега) будут "фильтровать" дубли. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2005, 02:09:47 |
|
||
|
уникальность данных без SQL
|
|||
|---|---|---|---|
|
#18+
Hi VanGuard! Перечитал ещё раз вопрос и подумал - ты новерное имел в виду как "ускорить" работу SQL варианта с использованием неструктурных тегов простых индесов - т.е. НЕ UNIQUE? Тогда достаточно их просто создать (если не было) или подключить (но тогда нужно быть на 100% уверенным что они актуальны! Т.е. что никто не менял данные НЕ подключив предварительно эти индексные файлы). Подключаются cdx по SET INDEX TO ... ADDITIVE ( ADDITIVE нужно если есть другие неструктурные индексы - если же он один, то без разницы - структурный никогда не отключается). Создаются как и всегда по INDEX ON ... Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2005, 03:01:07 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33058749&tid=1594250]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
183ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 469ms |

| 0 / 0 |
