powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запрос про стрелки часов
7 сообщений из 32, страница 2 из 2
Запрос про стрелки часов
    #40072024
Агрох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_SQL

У вас всего 840 вариантов... А их триллион


Пофиксил. Но дальше улучшать лень, да и домой пора.

Код: sql
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.
WITH R0 AS (
SELECT 1 As val, 1 AS num
UNION ALL 
SELECT val + 1 AS val, num + 1 AS num FROM R0 WHERE num < 40
), R2 AS (
SELECT CAST(val AS VARCHAR(500)) AS v_s, val, num, 1 as sm, 1 AS a
FROM R0
WHERE num = 1

UNION ALL
  
SELECT CAST(CONCAT(a.v_s, '+', CAST(b.val AS VARCHAR(500))) AS VARCHAR(500)) AS v_s, a.val + b.val, a.num + 1 AS num, a.sm, 2 AS a
FROM R2 AS a
  INNER JOIN R0 AS b
  	ON b.num = a.num + a.sm

UNION ALL
  
SELECT CAST(b.val AS VARCHAR(500)) AS v_s, b.val, b.num, 1 as sm, 3 AS a
FROM R2 AS a
  INNER JOIN R0 AS b
  	ON b.num = a.num + a.sm
  	  AND a.a in (1, 3)
--/*  
UNION ALL
  
SELECT a.v_s, a.val, a.num, a.sm + 1 as sm, 1 AS a
FROM R2 AS a
WHERE a.sm < 40 - a.num
  AND a.a IN (1, 2, 3)
--*/
)
SELECT DISTINCT *-- R2.v_s, R2.val 
FROM R2
WHERE R2.a = 2
  AND R2.val = 36




Oleg_SQL

Суммы были миллионные и с копейками ))


Это уже тонкости, текстовое поле можно взять побольше или вообще XML генерить или иной способ придумать. Для простоты, взял целые числа и порядковый номер просто совпадает со значением. Я же генерил их, а не брал из реальной таблицы.
...
Рейтинг: 0 / 0
Запрос про стрелки часов
    #40072099
Oleg_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Агрох,

запрос выполнился?

за сколько дней/месяцев?
...
Рейтинг: 0 / 0
Запрос про стрелки часов
    #40072390
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_SQL
запрос выполнился?
за сколько дней/месяцев?

И что? Теперь всех так троллить будут?
...
Рейтинг: 0 / 0
Запрос про стрелки часов
    #40072433
Oleg_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster
Oleg_SQL
запрос выполнился?
за сколько дней/месяцев?

И что? Теперь всех так троллить будут?



Причем тут троллинг? Просто разница в скорости - несколько тысяч раз...

Вышеуказанный запрос для 15 (1..15) значений и поиске суммы 20 занял
( затронуто строк: 57 )
Таблица "Worktable". Сканирований 1028465, логических операций чтения 57593849, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0.
Время работы SQL Server:
Время ЦП = 68906 мс, затраченное время = 71712 мс .

То же самое Питон выдал

Hi, PyCharm
2021-05-24 12:55:01.217436
<====================================================================================================================================================================================
{(2, 3, 6, 9), (2, 3, 7, 8), (1, 3, 6, 10), (1, 2, 4, 5, 8), (1, 3, 5, 11), (3, 5, 12), (1, 4, 7, 8), (8, 12), (4, 7, 9), (9, 11), (2, 5, 13), (4, 6, 10), (1, 3, 4, 12), (3, 4, 13), (1, 2, 8, 9), (2, 4, 14), (1, 8, 11), (1, 9, 10), (2, 3, 5, 10), (6, 14), (2, 3, 15), (7, 13), (2, 5, 6, 7), (1, 2, 7, 10), (1, 5, 6, 8), (2, 4, 6, 8), (2, 3, 4, 5, 6), (1, 7, 12), (4, 5, 11), (2, 3, 4, 11), (1, 4, 6, 9), (5, 15), (1, 4, 5, 10), (5, 7, 8), (3, 4, 6, 7), (2, 4, 5, 9), (3, 4, 5, 8), (1, 3, 7, 9), (3, 8, 9), (1, 2, 3, 5, 9), (1, 2, 3, 6, 8), (1, 2, 5, 12), (2, 8, 10), (1, 2, 6, 11), (5, 6, 9), (3, 7, 10), (1, 5, 14), (1, 6, 13), (1, 3, 4, 5, 7), (2, 7, 11), (1, 2, 3, 4, 10), (1, 2, 3, 14), (2, 6, 12), (1, 2, 4, 13), (1, 4, 15), (3, 6, 11), (1, 2, 4, 6, 7)}
57
====================================================================================================================================================================================>
0:00:00.025956
2021-05-24 12:55:01.243392
...
Рейтинг: 0 / 0
Запрос про стрелки часов
    #40072440
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_SQL
Причем тут троллинг?

Тут Прохоров что-то считал на MySQL почти месяц. На жс это же считалось около минуты.
...
Рейтинг: 0 / 0
Запрос про стрелки часов
    #40072448
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuliaYarr
Доброе время суток всем.

Есть таблица со временем:

01:00
08:43
12:00
15:15
....

Как выбрать время, при котором стрелки часов совпадают?

В инете читала про стрелки часов.

но как оформить в запрос никак не могу сообразить?
от часов берем остаток от деления на 12.
Далее просто - совпадение стрелок -> HH/12 +поправка на минуты = MM/60
...
Рейтинг: 0 / 0
Запрос про стрелки часов
    #40072455
Агрох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_SQL, студии под рукой нет, кручу на онлайн виртуалке. 40 не тянет. Надо что то ещё придумать/оптимизировать. Для 15 вполне норм, выполняется сразу.

Подкрученный код:


Код: sql
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.
WITH R0 AS (
SELECT 1 As val, 1 AS num
UNION ALL 
SELECT val + 1 AS val, num + 1 AS num FROM R0 WHERE num < 15
), R2 AS (
SELECT CAST(val AS VARCHAR(500)) AS v_s, val, num, 1 as sm, 1 AS a
FROM R0

UNION ALL
  
SELECT CAST(a.v_s + '+' + CAST(b.val AS VARCHAR(500))AS VARCHAR(500)) AS v_s, a.val + b.val AS val, b.num, 1 AS sm, 3 AS a
FROM R2 AS a
  INNER JOIN R0 AS b
  	ON a.num + a.sm = b.num
  
UNION ALL
  
SELECT a.v_s, a.val, a.num As num, a.sm + 1 As sm, 4 AS a
FROM R2 AS a
WHERE a.a in (1, 3, 4)
  AND a.sm < 15 - a.num
)
SELECT DISTINCT R2.v_s, R2.val 
FROM R2
WHERE 1=1
  AND R2.val = 20


...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запрос про стрелки часов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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