【发布时间】:2021-06-25 17:20:37
【问题描述】:
您好,我是 SQL 的新手。如果需要,我如何在 SQL 或 python 中实现这个过程:
首先,我从table1中随机抽取了两个结果:
SELECT TOP 2 id, date
FROM table 1
WHERE date >= 2 AND date <= 6
ORDER BY RAND(CHECKSUM(*) * RAND())
+-----------+
| table1 |
+-----------+
| id | date |
+----+------+
| x | 3 |
| y | 4 |
+----+------+
我需要使用值x 和y 作为条件来显示另一个表格。例如,使用x,我可以:
SELECT id, date
FROM table1
WHERE date >= 2 AND date <= 6 AND id = 'x'
ORDER BY date ASC
+-----------+
| table2 |
+-----------+
| id | date |
+----+------+
| x | 3 |
| x | 4 |
| x | 5 |
| x | 6 |
| x | 6 |
+----+------+
我需要的是在不重复日期的情况下获取 table2 的长度。例如,table2 有 5 行,但最后两行的日期重复。所以最终的答案是4 rows。
对于id = y,我要做同样的事情(比如table3),比较table3和table2的长度,看是否一致。
如果是,则返回长度(例如,4 行);如果否,则返回 table1 并选择另外两个 id(例如 z 和 y)。
我正在考虑使用 python 来选择值或创建变量,然后在 SQL 中使用 python 变量。但对于一个新人来说,这太过分了。如果有人能帮助我完成这个过程,我真的很感激。
【问题讨论】:
-
您的描述有些混乱 - 您想要计数(或不同计数)还是实际数据?
3或4的日期是什么意思? -
很抱歉造成混淆。我要一个号码。数字是 table2/table3 的长度(我需要确保两个表的长度相同)。
date只是一个列名。您可以将其视为价值。
标签: sql sql-server database