如何选择表中前95%的行

时间:2018-07-06 13:50:16

标签: sql postgresql

我想根据表格数据创建效果报告。

我不知道表中有多少行,我想根据某些where条件获取前95%(百分比)的行。

表结构-

列名- txid,开始时间,结束时间

对于我的效果报告,我需要获取end_time-start_time的平均值。 (end_time-start_time)的常用值范围是100毫秒至1秒。 但是,由于某些或其他技术错误,几乎没有事务(少于2%)花费了大约100-2K秒的时间。 我想避免这些行以获得公平的平均报告。在我的报告中包括这些行引起了极大的关注。

3 个答案:

答案 0 :(得分:1)

您可以使用子查询。我将只使用[Route("accounts/facebook/{id}")] public IActionResult Facebook(string id) { // need to pass id to state var auth = new AuthenticationProperties { RedirectUri = "/accounts/facebook/callback" }; return Challenge(auth, "Facebook"); } [Route("accounts/facebook/callback")] public IActionResult Callback() { //need to read send state from HttpContext; return Redirect("/"); } } bigI,_ := big.NewInt(0).SetString("3891113451447590234", 10) bigF := big.NewFloat(0).SetInt(bigI) fmt.Println(bigF) fmt.Println(bigF.String()) fmt.Println(bigF.SetMode(big.AwayFromZero).Text('f', 8)) fmt.Println(bigF.SetMode(big.AwayFromZero).Text('g', 20)) 3.8911134514475904e+18 3.891113451e+18 3891113451447590400.00000000 3891113451447590400 ,尽管其他窗口功能(例如row_number()count(*)ntile()也可以用于此目的:

percentile_cont()

答案 1 :(得分:0)

假设您有一个具有字段ID的表TABLE:

select top (
(select count(Id) FROM [TABLE])*95/100
) id FROM [TABLE]

答案 2 :(得分:-1)

在TSQL中:

DECLARE @ourCount as Int
  DECLARE @topNinetyFive as Int

  Select @ourCount = count(1)  FROM [ourDatabase].[dbo].[ourTable]
  Set @topNinetyFive = round(0.95 * @ourCount, 0)

  Select TOP (@topNinetyFive)  *  FROM [ourDatabase].[dbo].[ourTable]

-注意:更有意义的标准可以基于带有“ where”子句的列之一