[英]User-defined variables support in Sqlalchemy
SQLAlchemy 是否支持用戶定義的變量?
https://dev.mysql.com/doc/refman/5.6/en/user-variables.html
問題:我試圖獲取連續兩行之間的時間差。 我可以通過使用用戶定義的變量編寫原始 SQL 查詢來做到這一點。 在不編寫原始 SQL 查詢的情況下,這可以在 SQLAlchemy 中進行嗎?
我的表是這樣的:
id user_id date
1. user_1 01-11-2021 00:00
2. user_1 01-11-2021 00:00
3. user_1 01-11-2021 00:01
4. user_2 01-11-2021 00:00
輸出將類似於
id user_id time_diff
1. user_1 NULL
2. user_1 0
3. user_1 1
4. user_2 NULL
執行所需任務且不使用 UDV 且適用於 MySQL 5.6 的 SQL 查詢如下所示:
SELECT t1.*, TIMESTAMPDIFF(SECOND, t1.date, t2.date) time_diff
FROM table t1
LEFT JOIN table t2 ON t1.user_id = t2.user_id
AND t1.date > t2.date
LEFT JOIN table t3 ON t1.user_id = t3.user_id
AND t1.date > t3.date
AND t3.date > t2.date
WHERE t3.id IS NULL
的邏輯:我們選擇2行(由date
從表拷貝的用戶值) t1
和t2
(與行中的t2
具有較早date
值),並將復印t3
檢查,這些行是真的相鄰(之間不存在第三行他們)。
此查詢不使用 UDV,可以轉換為 SQLAlchemy 語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.