Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » SQL запрос

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 38 39 40 41 42 43

Открыть новую тему     Написать ответ в эту тему

NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ne_viens, можно конечно поизвращаться left-shift/right-shift, но лучше SQL CLR

Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 08:04 18-10-2017
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сделал так:

Код:
DECLARE @i int, @a nvarchar(8), @b nvarchar(8), @c nvarchar(8)
DECLARE cur CURSOR FOR
 
SELECT Number FROM loop
 
OPEN cur
 
FETCH NEXT FROM cur INTO @i
WHILE @@FETCH_STATUS = 0
BEGIN
 SET @a = @i / power(2, 8) & 0xf
 SET @b = @i / power(2, 4) & 0xf
 SET @c = @i & 0xf
 PRINT @a + N'-' + @b + N'-' + @c
 FETCH NEXT FROM cur INTO @i
END
 
CLOSE cur
DEALLOCATE cur
 

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 14:20 18-10-2017
NiXXX



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть у меня таблица.
Тип поля DTIME - timestamp.
Мне надо посчитать сколько в секундах (или минутах или часах, если зависнет) обрабатывался запрос.
В результате хочу вывести idcall, время начала, время завершения и длительность.
Если вывожу только время начала, завершения и длительность, то все ок (хотя и округляет до целых, а хотелось бы хотя бы до двух знаков после запятой).  
А вот если вывести еще и idcall, то получаю ORA-00937: not a single-group group function. Всю голову сломал, как переделать запрос.

Всего записей: 365 | Зарегистр. 06-05-2003 | Отправлено: 17:56 18-10-2017 | Исправлено: NiXXX, 19:33 18-10-2017
Mic777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А вот если вывести еще и idcall, то получаю ORA-00937: not a single-group group function.

 
group by pl.idcall
 
спасет отца русской демократии
 
Добавлено:

Цитата:
а хотелось бы хотя бы до двух знаков после запятой

 
а такой вариант:

Код:
 
 to_char(extract(HOUR from max(cast(dcrtime as timestamp)) - min(cast(dcrtime as timestamp)))) || ':'  
         || to_char(extract(MINUTE from max(cast(dcrtime as timestamp)) - min(cast(dcrtime as timestamp)))) || ':'  
         || to_char(extract(SECOND from max(cast(dcrtime as timestamp)) - min(cast(dcrtime as timestamp)))) as Duration
 

Всего записей: 90 | Зарегистр. 15-12-2005 | Отправлено: 19:49 18-10-2017
NiXXX



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mic777, благодарствую!

Всего записей: 365 | Зарегистр. 06-05-2003 | Отправлено: 10:44 19-10-2017
Fsp050

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как посчитать уникальные id
общее количество
т.е.
1
1
2
3
4
5
5
итого у нас 5 уникальных id
 
мне нужно общее итого, чтобы было написано
count
5
 
у меня же  если делаю distinct
id count
1   2
2   1
3   1
4   1
5   2
 
 
Добавлено:
вернее нужно распределение по дням
select id,day
from mytable
count   day
5          1.09.2017
 
как так сделать

Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 13:36 19-10-2017
Mic777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
with a as (
select 1 x from dual
union all
select 1 from dual
union all
select 2 from dual  
union all
select 3 from dual  
union all
select 4 from dual  
union all
select 5 from dual  
union all
select 5 from dual  )
 
select count(distinct a.x)
  from a
 

Всего записей: 90 | Зарегистр. 15-12-2005 | Отправлено: 14:46 19-10-2017
Fsp050

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mic777
у меня сотни id)

Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 15:40 19-10-2017
Mic777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fsp050
да хоть тысячи, в чем беда?

Всего записей: 90 | Зарегистр. 15-12-2005 | Отправлено: 15:55 19-10-2017
Alexzzy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mic777
По датам
select count(distinct id), day  
from mytable
group by day

Всего записей: 1474 | Зарегистр. 10-07-2013 | Отправлено: 20:06 19-10-2017
Fsp050

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите, плиз, как сделать чтобы day на выходе был в формате
09-05-2017, а не 09-05-2017 5:34:23

Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 18:11 22-10-2017
Mic777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fsp050
https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions188.htm#SQLRF06129
 
select to_char(sysdate, 'dd.mm.yyyy') from dual

Всего записей: 90 | Зарегистр. 15-12-2005 | Отправлено: 09:33 23-10-2017
Dronton2

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mic777, Fsp050
Первое предположение - что БД Oracle, а не что-то другое.
Второе предположение - что 09 - день, а 05 - месяц, а не наоборот.
Поэтому, форматом может быть как 'DD-MM-YYYY', так и 'MM-DD-YYYY'
Ну, и список элементов строки формата для Оракла можно посмотреть здесь: https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm

Всего записей: 460 | Зарегистр. 27-06-2005 | Отправлено: 15:13 23-10-2017
Mic777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dronton2
Мне то это зачем?
Я вроде и ссылку как формат задать дал и пример привел.

Всего записей: 90 | Зарегистр. 15-12-2005 | Отправлено: 21:16 23-10-2017
Steepe_Hare



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, подскажите пожалуйста, как отобрать только те записи, у которых в строковом поле начинается с буквы А или а

Всего записей: 1162 | Зарегистр. 27-10-2001 | Отправлено: 21:35 23-10-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Steepe_Hare
SELECT * FROM TABLE WHERE COLUMN LIKE 'A%'
https://docs.microsoft.com/ru-ru/sql/t-sql/language-elements/like-transact-sql
http://www.sql-tutorial.ru/ru/book_predicate_like.html

Всего записей: 15101 | Зарегистр. 20-09-2014 | Отправлено: 02:30 24-10-2017 | Исправлено: Mavrikii, 02:31 24-10-2017
Mic777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Steepe_Hare
 
Чтобы

Цитата:
в строковом поле начинается с буквы А или а
, то как предложил Mavrikii, только вместо column -> upper(column)
 

Всего записей: 90 | Зарегистр. 15-12-2005 | Отправлено: 07:59 24-10-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mic777

Цитата:
только вместо column -> upper(column)

привык к _ci ))

Всего записей: 15101 | Зарегистр. 20-09-2014 | Отправлено: 08:54 24-10-2017
Dronton2

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mic777
Не все же на Оракле пишут. А вдруг у него другая СУБД? Тогда и ваша ссылка ему не нужна, и пример, приведённый вами, выдаст ошибку.

Всего записей: 460 | Зарегистр. 27-06-2005 | Отправлено: 10:17 24-10-2017
Steepe_Hare



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mic777
 
Спасибо! А upper(column)  работает на SQLite?

Всего записей: 1162 | Зарегистр. 27-10-2001 | Отправлено: 10:53 24-10-2017
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 38 39 40 41 42 43

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » SQL запрос


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru