问题:
我正在尝试使用我在 mysql 数据库上的历史数据摘要创建一个关于 redash 的可视化。我发现它严重依赖 SQL,而且我发现 python 支持并不那么容易管理。
碰巧我在数据库中有几个表每天报告一些统计数据(所有浮点数)。
我想在每个表上查询从今天开始计算的最长的历史数据,它应该只需要原始(我的)SQL 查询,不需要过程 =/
考虑以下示例数据集...
今天是2020-10-21
DROP TABLE IF EXISTS table1;
CREATE TABLE table1
(date DATE NOT NULL PRIMARY KEY);
INSERT INTO table1 VALUES
('2020-10-17'),
('2020-10-19'),
('2020-10-20'),
('2020-10-21');
DROP TABLE IF EXISTS table2;
CREATE TABLE table2
(date DATE NOT NULL PRIMARY KEY);
INSERT INTO table2 VALUES
('2020-10-18'),
('2020-10-19'),
('2020-10-20'),
('2020-10-21');
我想做到这一点:
mydata.tables longest_streak
table1 3
table2 4
编辑:我应该补充一点,我能够从信息模式中提取表列表,我应该使用可能的“UNION”命令运行它,但我仍然很难仅使用可能带有几个子选择的原始查询来使用它.
EDIT2:我能够这样查询
SELECT
CONCAT('SELECT DISTINCT ''', table_name, ''', dateday FROM ', 'mydata.', table_name) AS query_string
FROM
information_schema.tables
WHERE
TABLE_SCHEMA like 'mydata' and TABLE_NAME like 'table%'
这会将一般查询作为字符串提供给我大致需要做的事情,问题是 Redash 严重依赖原始 SQL 查询。也许我可以在 Redash 调用它的 db 中添加一个过程,但我认为对于这个 db 来说这是不行的(由于政策)