在mssql server上,我尝试将单个随机记录从一个表传输到另一个表。
我的sql脚本应该
从表“Test1”中选择一个随机记录删除步骤1中获得的特定记录。从表‘Test1’中将该记录添加到表'Test2'中
到目前为止我发现
从表Test1获得一条随机记录
SELECT TOP 1
*
FROM
[Test1]
ORDER BY
NEWID()
删除名为'uno‘的列等于'1’的记录,并将已删除的记录放在名为'Test2'的表中
DELETE FROM
[Test1]
OUTPUT
deleted.*
我有一个工资表,我想找第二大工资记录,第三大工资记录等等。为了检索第二大记录,我使用以下查询
Select Top 1 * from SalaryTable
where salary < (Select Max(Salary) from SalaryTable)
order by Salary desc
同样,我如何找到第三大记录或第四大记录等等?有没有办法检索特定的记录?
我有一个很大的表,大约有660万条记录,我想随机抽取10万条记录。
SELECT column FROM table
ORDER BY RAND()
LIMIT 100000
每一张唱片都非常慢。
我还没有找到一个与MySQL/MariaDB一起使用的解决方案来提取10万条记录的随机样本。
请给我建议。
谢谢。
我有一张把工作联系在一起的表格:
JobToJob
(
JobToJobId int
SourceJobId int
DestinationJobId int
)
一个作业可以有多个目标作业(即多个JobToJob记录),但只有一个源作业。这就创造了一个树结构。根记录被定义为在任何其他记录上没有DestinationJobId条目的记录。
我的要求是为提供的作业ID检索整个树。
查找给定作业id的根作业。
检索根作业id的所有叶子。
我尝试过使用递归的CTE来尝试这一点,但是我什么也没有得到。我知道我可能可以通过使用存储过程来实现这一点,但是我试图避免这样
我正在尝试获取随机样本记录的2%。 SELECT * FROM Orders
ORDER BY RAND()
LIMIT (SELECT CEIL(0.02 * (SELECT COUNT(*) FROM Orders))); 这一行给出了一个语法错误,是不是我做错了什么?或者,有没有更好的方法来获取n%的记录?
我们有一个类似下面的表格 folderid name parent
==========================
1 one null
2 two 1
3 three 2
4 four 3
5 five 4
6 six 5 有没有办法在给定folderid的情况下检索完整的记录列表。例如,如果传递1,它应该返回直到叶为6的完整层次结构。如果传递6,它应该返回直到根为1的完整层次结构。如果传递4,它应该返回从根到叶的
我想随机地为记录分配一个名称,但基于百分比分布。例如,假设我有这样的数据: name type sub_type reg pct
a xx yy n .7
a xx yy n .7
NO Name xx yy n NULL
NO Name xx yy n NULL
NO Name xx yy n NULL
b xx yy n .3
NO Name xx yy n NULL
a bb
结合一些例子,我想出了以下查询(字段和表名已被匿名化,soI希望我没有插入排字)。
UPDATE destinationTable
SET destinationField = t2.value
FROM destinationTable t1
CROSS APPLY (
SELECT TOP 1 'SomeRequiredPrefix ' + sourceField as value
FROM #sourceTable
WHERE sourceField <> ''
ORDER BY NEWID()
) t2
背景:--我正在使用下面的存储过程检索每小时的时间序列数据。
SELECT *
FROM (
SELECT CAST(LocalDateTime as SmallDateTime) as [DateTime], DataValue, VariableID
FROM DataValues
WHERE SiteID = 2 and VariableID IN(1,3,30)
) TableDate
PIVOT (SUM(DataValue) FOR VariableID IN ([1],[3],[30]))
Piv
我看过几篇关于使用CTE的文章,我认为这会解决我的问题,但我似乎无法让它对我的具体用例起作用。我的用例是,我有一个有一系列记录的表,在对它们做了一个小的更新之后,我需要提取一些记录。
即-检索满足一系列条件的记录-更新每个记录中的一个或多个列-返回更新的记录。
我知道我可以使用以下方法返回记录的ID:
WITH cte AS
( SELECT TOP 1 * FROM msg
WHERE guid = 'abcd'
AND active = 1
ORDER BY created DESC )
UPDATE cte SET active = 0
OUTPUT
我有两个表,名为S1和S2。我有一个公共列,也就是ID。相同的ID可以有S2中的记录数。现在,我只想从S2中检索一条记录以及S1中的其他记录。来自S2的记录也可以为null。我把查询设成这样。
SELECT
[ID], [C], [ST], [AS], [CD], [SS], [SD],
FROM
[dbo].[S1]
WHERE
SD IN (SELECT MAX(SD)
FROM S1 (nolock)
WHERE SID = 45 AND SS != 7
GROUP B
我想从表中选择具有主键列的记录。但是我想要基于给查询的动态输入的主键的重复记录。
假设我有带有两列的employee表:(emp_id (primary key), emp_name);
emp_id name
1 abc
2 xy
3 xyz
假设我正在从emp表中选择记录,比如。
Select * from emp where emp_id in (1,2,2,3);
将从表中返回三行。
我想从表中检索4行,而不是3行。
该查询还应适用于其他输入,如:
Select * from emp where emp_id in (1,1,1,2,2,
我们有一组记录,并以以下方式为每条记录分配一个随机数,其值介于1和记录总数之间:
SELECT personID, ROW_NUMBER()
OVER(ORDER BY NEWID()) as RowNumber
FROM folks
像馅饼一样简单。让我们假设一个较低的(编辑:不高,对不起!)数字更适合客户的目的,而且他们喜欢这里的“随机”元素的工作方式。问题是,客户现在说:“有些人很特别,我们希望他们有三次机会,然后把他们最好的成绩作为他们的号码。”
由于我们不按顺序发送数字,而是一次发送,所以这里的方法似乎是在这个查询中选择三次特殊的人,然后获取他们的最高行号。
这与这个问题相似,但比这
我正在使用SQL Server。我有一个表,其中包含大约75000条记录。其中有几条重复的记录。所以我写了一个查询,想知道哪条记录重复了多少次,
SELECT [RETAILERNAME],COUNT([RETAILERNAME]) as Repeated FROM [Stores] GROUP BY [RETAILERNAME]
它给我的结果是,
---------------------------
RETAILERNAME | Repeated
---------------------------
X | 4
---------------------
我正在尝试构建一个SQL查询,该查询可以从不同的表中随机选择条目,最多可以选择一定数量的条目。
假设我有3个表A、B和C。我想从A、B和C中选择10行。
现在,我想从A中随机选择2个条目,从B中最多选择6个条目(取决于从A检索了多少行,如果A没有任何行,我希望从B中获得6行)。如果A返回了1行,我想从B获得5行,等等。然后,我想用随机选择的C行填充其余的条目(在0到10之间,这取决于前面的子查询)。到目前为止,我尝试了:
select * from (
(SELECT * FROM A ORDER BY RAND() LIMIT 2)
UNION
(SELECT * FROM B ORDER
Select * from LoanAccount main INNER JOIN LoanSubAccount sub
WHERE main.LoanAccountID = sub.LoanAccountID
AND sub.LoanStatus = 4
我的目标是用LoanStatus = 4检索行,用LoanStatus = 2用记录替换金额。最终结果预期为
给定Oracle数据库中的is表,随机标记(x)百分比is的最佳方法是什么?在下面的示例中,我随机标记了所有记录的20%。 ID ELIG
1 0
2 0
3 0
4 1
5 0 我目前的方法如下所示,运行良好,但我想知道是否有更有效的方法来做到这一点? WITH DAT
AS ( SELECT LEVEL AS "ID"
FROM DUAL
CONNECT BY LEVEL <= 5),
TICKETS
AS (SELECT "ID", 1 AS
我正在使用Server,并试图构建一个临时表,其中包含一个由当前令人兴奋的表检索的列,并在每一行中插入一个日期。
例如,我有
select NumberID into #Table0
from Table1
where numcue in [conditions]
在新的Table0中,我有一个特定的标准来排序NumberID。但按照同样的顺序,我想为每一行介绍一个日期。
在不使用CREATE或INSERT (我对此没有权限)的情况下,有没有办法做到这一点?
提前感谢
?版本??(更多信息)。
也许我还不清楚,长话短说,我在数据仓库( Datawarehouse,10k+rows)的10k+r
我已经尝试过这个存储过程来插入包含随机数据的10条记录到分类帐表中,但它不起作用,在成功执行后,它没有在表中插入任何内容。我做错了什么?有人能帮我吗..。
CREATE PROCEDURE FillLedger
AS
BEGIN
SET NOCOUNT ON
DECLARE @c INT = 1,
@itemNo int = floor(rand()*11),
@quantity int = floor(rand()*50) + 50,
@date datetime = '2015-01-01'
While @c >
我正在尝试使用asp.net中的ROW_NUMBER()实现对网格视图的自定义分页。下面的(经典)查询工作得很好,但是它的性能没有那么好,因为我必须将整个表复制到一个新表中,然后从新表中选择20个记录。有时,它甚至更好地不分页,只需一次检索所有记录。我试图在where子句中使用ROW_NUMBER(),但是sql不允许我这样做。如何改进下面的查询?你会有什么建议?我想我需要找到一种方法来消除将整个数据集复制到一个新表的过程,但是如何做到呢?
SELECT PostId, Message, (ROW_NUMBER() OVER (ORDER BY LastUpdateDateTime DESC)
我编写了一个查询,它从一个表中检索前5条记录,如下所示
SELECT Top(5) Activity, GETUTCDATE() as CurrentDate
FROM Activities
WHERE UserID = @uid
ORDER BY ActivityDate DESC
在View上,我显示了前5条记录,并且我还有一个更多的链接,即单击应显示的下5条记录,再次单击该链接显示下5条记录,依此类推
我对如何编写这个查询感到困惑,即如何获取下5条记录,然后是下5条记录,以此类推
我想得到每个设计和类型的不同记录,每个记录的随机id是不可能使用的
select distinct Design, Type, ID from table
它将返回所有值--这是我表的结构
Design | Type | ID
old chair 1
old table 2
old chair 3
new chair 4
new table 5
new table 6
newest chair 7
可能结果
Design | Type | ID
old table 2
old chair 3
new chair 4
new table 6
newest chair 7
我在2个独立的数据库中有2个表。
表1包含我需要通过存储过程检索的用户信息。
表2(在db2中)有一个指向表1中的用户id的外键,但是每个用户在这个表中可以有很多行数据。
我只想从这个表中检索最旧的记录。
即
db1.dbo.userProfile
id int
...
db2.dbo.userRecords
id int
fk_userProfile int
DateCreated DateTime
.....
举个例子,如果我的数据是
table 1
id otherData
1 ...
table 2
id fk_userProfile oldestDate otherData