我想在BigQuery中获得一个随机的4位整数。我试过经典的
SELECT CAST(10000*RAND() AS INTEGER) as number,但结果为0
添加这个问题作为结果可能会让习惯于在大多数其他语言中执行TRUNC的程序员感到惊讶。
SELECT word, CAST(round(10000*RAND(1)) AS integer) as rand
FROM [publicdata:samples.shakespeare]
order by rand
#Sample size needed = 10
limit 10
我得到的结果是零
我读到过在大型数据库上使用ORDER BY RAND()运行SQL查询不是一个好主意。
所以这是我破解代码的办法。代码需要从数据库中选择10个随机ids,然后执行第二次select来获取随机行。
$sql = "SELECT id FROM table WHERE image != ''
ORDER BY id DESC LIMIT 50;";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
foreach($row as $key =&
我想要生成一个随机id,它使用表名和姓氏,并在登录结束时生成一个随机数。我无法弄清楚如何使用RAND函数在名称末尾添加单个随机数。请帮帮我。我们会很感激的。谢谢
DECLARE CUSTOMER_ID_CURSOR CURSOR
STATIC
FOR
SELECT [first_name]+[last_name] as [ADMINISTRATOR ID] from administrators ;
OPEN CUSTOMER_ID_CURSOR;
FETCH NEXT FROM CUSTOMER_ID_CURSOR;
WHILE @@FETCH_STATUS=0
FETCH NEXT
如何在SQL中获取有效的简单随机样本?所讨论的数据库正在运行MySQL;我的表至少有20万行,我想要一个大约10,000的简单随机样本。
“显而易见”的答案是:
SELECT * FROM table ORDER BY RAND() LIMIT 10000
对于大型表,这太慢了:它为每一行调用RAND() (这已经将其放在O( n )处),并对它们进行排序,使其充其量为O(N N)。有比O(n)更快的方法吗?
注意:正如Andrew毛在评论中指出的那样,如果您在Server上使用这种方法,您应该使用T函数NEWID(),因为RAND() 。
编辑:5年后
我用一个更大的表再次遇到了这个问题,最
我会在我的数据库中编辑一些假数据。但是,如果我要为每一行和每一列做随机数,它并不像我想要的那样随机。你可以在下面的图片上看到结果。
📷
下面是我使用的代码:
WITH x AS
(
SELECT mintwee, mineen, nul, pluseen, plustwee
FROM Topic
)
SELECT mintwee = CAST(RAND()*100 AS INT),
mineen = CAST(RAND()*100 AS INT),
nul = CAST(RAND()*100 AS INT),
pluseen =
我必须创建一些随机数据,到目前为止,在这个论坛的帮助下,我已经完成了80%,但我现在(再次)被卡住了。
我需要的是,我有一个名为请求日期的列,这个日期应该是随机的,但比订单日期晚1到10天。这可以做到吗?
DECLARE @OrderNumber varchar (30)
DECLARE @OrderDate int
DECLARE @OrderLineNumber varchar(50)
DECLARE @CustomerSkey int
DECLARE @ProductSkey int
DECLARE @OrderMethodSkey int
DECLARE @Quantity int
D