亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
Using ORDER BY with a Random Function
Sampling a Percentage of Rows
Performance Considerations
首頁 數(shù)據(jù)庫 SQL 如何從 SQL 表中隨機(jī)選擇行樣本?

如何從 SQL 表中隨機(jī)選擇行樣本?

Oct 16, 2025 pm 01:29 PM
sql 隨機(jī)樣本

使用數(shù)據(jù)庫特定函數(shù)如RAND()、RANDOM()、NEWID()結(jié)合ORDER BY和LIMIT可隨機(jī)抽樣,PostgreSQL和SQL Server還支持TABLESAMPLE按百分比采樣,但大表中ORDER BY隨機(jī)函數(shù)性能較差,建議用TABLESAMPLE或預(yù)計(jì)算隨機(jī)列優(yōu)化。

How to select a random sample of rows from an SQL table?

To select a random sample of rows from an SQL table, you can use database-specific functions that generate random ordering and then limit the number of results. The exact syntax varies depending on the database system you're using.

Using ORDER BY with a Random Function

Different databases provide different functions to generate random values. You can sort the rows by this random value and use LIMIT (or equivalent) to get a sample.

  • MySQL: Use RAND()
    SELECT * FROM table_name ORDER BY RAND() LIMIT 10;
  • PostgreSQL: Use RANDOM()
    SELECT * FROM table_name ORDER BY RANDOM() LIMIT 10;
  • SQL Server: Use NEWID() for randomness
    SELECT TOP 10 * FROM table_name ORDER BY NEWID();
  • SQLite: Also uses RANDOM()
    SELECT * FROM table_name ORDER BY RANDOM() LIMIT 10;

Sampling a Percentage of Rows

If you want a random percentage instead of a fixed number of rows:

  • PostgreSQL: Use TABLESAMPLE SYSTEM()
    SELECT * FROM table_name TABLESAMPLE SYSTEM(10); — gets ~10% of rows
  • SQL Server: Use TABLESAMPLE
    SELECT * FROM table_name TABLESAMPLE (10 PERCENT);

Note: TABLESAMPLE may not guarantee perfect randomness or exact counts, but it's efficient for large tables.

Performance Considerations

Using ORDER BY RAND() on large tables can be slow because it requires sorting all rows. For better performance:

  • Use TABLESAMPLE when approximate sampling is acceptable.
  • Consider adding a precomputed random column if you frequently need random samples.
  • For precise control and better speed on big tables, use techniques like random primary key selection within known ranges.

Basically, pick the method based on your database and performance needs. Simple random samples work well with built-in functions, but watch out for scalability on large datasets.

以上是如何從 SQL 表中隨機(jī)選擇行樣本?的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Stock Market GPT

Stock Market GPT

人工智能驅(qū)動(dòng)投資研究,做出更明智的決策

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

如何在SQL中的表或列中添加注釋? 如何在SQL中的表或列中添加注釋? Sep 21, 2025 am 05:22 AM

UseCOMMENTONCOLUMNorALTERTABLEwithCOMMENTtodocumenttablesandcolumnsinSQL;syntaxvariesbyDBMS—PostgreSQLandOracleuseCOMMENTON,MySQLusesCOMMENTinCREATE/ALTERstatements,andcommentscanbeviewedviasystemtableslikeINFORMATION_SCHEMA,butSQLitelackssupport.

如何在SQL中使用Soundex函數(shù)進(jìn)行語音搜索? 如何在SQL中使用Soundex函數(shù)進(jìn)行語音搜索? Sep 21, 2025 am 01:54 AM

SOUNDEX函數(shù)將文本轉(zhuǎn)換為表示發(fā)音的四字符代碼,首字母加三位數(shù)字,忽略元音和特定字母,相似發(fā)音的輔音映射到相同數(shù)字,實(shí)現(xiàn)基于發(fā)音的搜索。例如Smith和Smythe均生成S530,可通過WHERESOUNDEX(last_name)=SOUNDEX('Smith')查詢發(fā)音相近的姓名。結(jié)合DIFFERENCE函數(shù)可返回0到4的相似度評分,篩選發(fā)音接近的結(jié)果,適用于處理拼寫差異,但對非英語名稱效果有限,且需注意性能優(yōu)化。

如何在SQL表中找到孤兒記錄? 如何在SQL表中找到孤兒記錄? Sep 17, 2025 am 04:51 AM

Tofindorphanedrecords,useaLEFTJOINorNOTEXISTStoidentifychildrecordswithoutmatchingparentrecords.Forexample,SELECTo.FROMOrdersoLEFTJOINCustomerscONo.customer_id=c.customer_idWHEREc.customer_idISNULLreturnsorderslinkedtonon-existentcustomers.Alternativ

如何在SQL列中添加唯一的約束? 如何在SQL列中添加唯一的約束? Sep 24, 2025 am 04:27 AM

使用CREATETABLE時(shí)添加UNIQUE關(guān)鍵字或用ALTERTABLEADDCONSTRAINT為現(xiàn)有表添加約束,確保列中值唯一,支持單列或多列組合,添加前需保證數(shù)據(jù)無重復(fù),可通過DROPCONSTRAINT刪除,注意不同數(shù)據(jù)庫語法差異及NULL值處理。

SQL中的子查詢和CTE有什么區(qū)別? SQL中的子查詢和CTE有什么區(qū)別? Sep 16, 2025 am 07:47 AM

子查詢是嵌套在另一查詢中的查詢,適用于簡單一次性計(jì)算,可位于SELECT、FROM或WHERE子句中;2.CTE通過WITH子句定義,提升復(fù)雜查詢的可讀性,支持遞歸和多次引用;3.子查詢適合單次使用,CTE更適用于需清晰結(jié)構(gòu)、重復(fù)使用或遞歸的場景。

如何在SQL中獲得給定日期的一個(gè)月的最后一天? 如何在SQL中獲得給定日期的一個(gè)月的最后一天? Sep 18, 2025 am 12:57 AM

使用LAST_DAY()函數(shù)(MySQL、Oracle)可直接獲取指定日期所在月的最后一天,如LAST_DAY('2023-10-15')返回2023-10-31;2.SQLServer使用EOMONTH()函數(shù)實(shí)現(xiàn)相同功能;3.PostgreSQL通過DATE_TRUNC與INTERVAL計(jì)算月末;4.SQLite利用date函數(shù)結(jié)合'startofmonth'、' 1month'和'-1day'獲取結(jié)果。

如何在SQL中生成GUID或UUID? 如何在SQL中生成GUID或UUID? Sep 19, 2025 am 02:41 AM

sqlserveruseSnewid()togenerateGuids; 2.Mysqlueseuuid()forversion1uuids; 3.Postgresgersgen_random_uuid()afterenablingpgcrypto; 4.SqlitelAcksBuiltAcksBuilt-insupport-insupport-insupport-insupport-insupport-sogen egogeneratementereuiuidSinappLicaticSinappLicatiCationcodeCode。

如何在SQL中的表中更新數(shù)據(jù) 如何在SQL中的表中更新數(shù)據(jù) Sep 18, 2025 am 06:04 AM

要更新SQL表中的數(shù)據(jù),需使用UPDATE語句,其基本語法為:UPDATE表名SET列1=值1,列2=值2...WHERE條件;1.更新單行時(shí),通過WHERE子句指定唯一標(biāo)識符,如主鍵;2.更新多列時(shí),在SET子句中列出多個(gè)列和值;3.更新多行時(shí),WHERE條件匹配的多條記錄將被同時(shí)更新;4.若省略WHERE子句,則所有行都會(huì)被更新,需謹(jǐn)慎操作;5.建議使用事務(wù)包裹UPDATE操作,以便在出錯(cuò)時(shí)回滾;此外,應(yīng)始終先用SELECT測試條件、備份重要數(shù)據(jù),并在支持的數(shù)據(jù)庫中使用LIMIT限制更新行數(shù)

See all articles