Вниз
Скачать: CL | DM;

Как получить общее и среднее время в стат.выборке?   Найти похожие ветки 

 
miwa ©   (2005-02-14 11:07) [0]

Есть 2 таблички. В первой - инфо о видеофайлах, во второй - об их просмотрах. Тоесть имеем типичное "один-ко-многим".
Делаю вот так:
select files.id, file_name,
 sum(look_length - cast("00:00:00" as time)),
 avg(look_length - cast("00:00:00" as time)),
 count(looks.id)
from looks, files
where looks.file_id = files.id
group by files.id, file_name
order by 3 desc

Работает отлично, но результаты дает в секундах, что не есть удобно. А вот так

select
 files.id,
 file_name,
 cast (sum(cast(look_length as DOUBLE PRECISION)) as time),
 cast (avg(cast(look_length as DOUBLE PRECISION)) as time),
 count(looks.id)
from looks, files
where files.id = looks.file_id
group by files.id, files.file_name
order by 3 desc

Получаю ошибку: Overflow occurred during data type conversion. Conversion error from string "00:00:01.0000".
При этом еще и IBExpert AV выплевывает (правда, не вылетает, просто ругается): AV at 005AC167. Read of address 000000034.


 
Johnmen ©   (2005-02-14 11:21) [1]

1. А в чем удобно ?
2. Текст ошибки неясен ?


 
miwa ©   (2005-02-14 11:32) [2]

1. Удобно, например, в формате ЧЧ:ММ:СС, для чего и делался другой запрос.
2. Текст ошибки ясен. Неясно ее происхождение, особенно в свете from string. А так же как с ней бороться.


 
Sergey13 ©   (2005-02-14 12:09) [3]

2[2] miwa ©   (14.02.05 11:32)
>1. Удобно, например, в формате ЧЧ:ММ:СС, для чего и делался другой запрос.
Ну дык и интерпретируй на клиенте как хочешь.


 
miwa ©   (2005-02-14 12:22) [4]

2 Sergey13 ©   (14.02.05 12:09) [3]
Ну дык и интерпретируй на клиенте как хочешь.

Тогда пните в нужном направлении, как это сделать? OnCalcFields обрабатывать? А, чуть не забыл. Использую EhLib-ы.


 
miwa ©   (2005-02-14 12:23) [5]

Тоесь, я имею в виду, насколько такое решение будет правильным - вместо получения данных из запроса в формате time приводить их в этот формат на клиенте.


 
Sergey13 ©   (2005-02-14 12:33) [6]

2[4] miwa ©   (14.02.05 12:22)
>Тогда пните в нужном направлении, как это сделать? OnCalcFields обрабатывать?
А почему нет? Раздели на 60, получишь минуты. Еще раз - часы.

>А, чуть не забыл. Использую EhLib-ы.
Это фиолетово, ИМХО.


 
miwa ©   (2005-02-14 12:50) [7]

>А, чуть не забыл. Использую EhLib-ы.
Это фиолетово, ИМХО.

Мало ли. А вдруг там есть какая-то фича, о которой я не подозреваю :о).

В общем, если обработка в OnCalcFields премлема (как метод) - всем спасибо за внимание и участие.


 
Deniz   (2005-02-15 06:38) [8]

Не обязательно OnCalcField, можно в OnGetText у поля хоть "черта лысего" написать.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.029 c
14-1108805932
07BB:080Dh
2005-02-19 12:38
2005.03.13
Как вычелисть проги в трее?


3-1108095477
КиТаЯц
2005-02-11 07:17
2005.03.13
FireBird. Селект с днями недели


14-1108642779
wicked
2005-02-17 15:19
2005.03.13
dot net - с чего начать?...


1-1109687795
Phoenix9000
2005-03-01 17:36
2005.03.13
Поиск в подкаталоге


1-1109440162
novice_man
2005-02-26 20:49
2005.03.13
Глобализация переменных.




   Наверх