WITH cte AS ( SELECT *,
LAG(`datetime`) OVER (PARTITION BY login ORDER BY `datetime`) lag_datetime,
LAG(event) OVER (PARTITION BY login ORDER BY `datetime`) lag_event
FROM history )
SELECT login, SUM(TIMESTAMPDIFF(MINUTE, lag_datetime, `datetime`)) duration
FROM cte
WHERE (event, lag_event) = (2,1)
GROUP BY login;
Ставим L3 коммутатор, который будет рулить потоком, его же добавляем в качестве шлюза.
WITH cte AS (
SELECT 'Bob' AS name, 25 AS age UNION ALL
SELECT 'Mark' , 30 UNION ALL
SELECT 'Joe' , 35
)
SELECT test.id,
jsonb_build_object('items', jsonb_agg(jae.value_1 || jsonb_build_object('age', cte.age)))
FROM test
CROSS JOIN jsonb_array_elements(test.value->'items') AS jae (value_1)
LEFT JOIN cte ON cte.name = jae.value_1->>'name'
GROUP BY test.id
и кто-нибудь решит задудосить
Постоянная и динамическая коммутация
Как сети с коммутацией пакетов, так и сети с коммутацией каналов можно разделить на два класса:
- сети с динамической коммутацией ;
- сети с постоянной коммутацией.
В сетях с динамической коммутацией:
- разрешается устанавливать соединение по инициативе пользователя сети;
- коммутация выполняется только на время сеанса связи, а затем (по инициативе одного из пользователей) разрывается;
- в общем случае пользователь сети может соединиться с любым другим пользователем сети;
- время соединения между парой пользователей при динамической коммутации составляет от нескольких секунд до нескольких часов и завершается после выполнения определенной работы — передачи файла, просмотра страницы текста или изображения и т.п.
Примерами сетей, поддерживающих режим динамической коммутации, являются телефонные сети общего пользования, локальные сети, сети TCP/IP.
Сеть, работающая в режиме постоянной коммутации:
- разрешает паре пользователей заказать соединение на длительный период времени;
- соединение устанавливается не пользователями, а персоналом, обслуживающим сеть;
- период, на который устанавливается постоянная коммутация, составляет обычно несколько месяцев;
- режим постоянной ( permanent ) коммутации в сетях с коммутацией каналов часто называется сервисом выделенных ( dedicated ) или арендуемых ( leased ) каналов;
- в том случае, когда постоянное соединение через сеть коммутаторов устанавливается с помощью автоматических процедур, инициированных обслуживающим персоналом, его часто называют полупостоянным (semi-permanent) соединением, в отличие от режима ручного конфигурирования каждого коммутатора.
а для более старых версий невозможно выполнить то, что я хочу?
SELECT *
FROM services
JOIN (
SELECT *,
@row_number := CASE WHEN service_id = @service_id
THEN @row_number + 1
ELSE 1
END rownumber,
@service_id := service_id
FROM orders
CROSS JOIN (SELECT @service_id := 0, @row_number := 0) init_vars
ORDER BY service_id, id DESC
) enumerated_orders USING (service_id)
WHERE enumerated_orders.rownumber <= services.service_limit
Информация о том, что пользователь оплатил подписку заносится в бд (есть отдельная строка, в которой изначальное значение равно нулю, а при оплате меняется на 1).
значение сменилось на 1, а потом через месяц само сменилось на 0.
хотелось бы посмотреть на версию mysql 5.7
SELECT department.name as department_name,
employee.name
FROM employee
JOIN department ON employee.department_id = department.id
WHERE 2 > ( SELECT COUNT(*)
FROM employee emp
WHERE emp.department_id = employee.department_id
AND emp.id < employee.id )
SELECT department.name as department_name,
subquery.name
FROM department
JOIN ( SELECT employee.*,
@row_number := CASE WHEN @department = department_id
THEN @row_number + 1
ELSE 1
END rownumber,
@department := department_id
FROM employee
CROSS JOIN ( SELECT @department:=0, @row_number:=0 ) variables
ORDER BY department_id, id ) subquery ON subquery.department_id = department.id
WHERE subquery.rownumber <= 2
Это продуктовый магазин
чеки:
с временем покупки
с товарами с количеством
с номером магазина
я просто хочу чтобы добавился столбце id, который бы шел по порядку с той таблицы которая у меня уже есть.