标签: max

查询以选择连接时的最大值


我有一个用户表:

|Username|UserType|Points|
|John    |A       |250   |
|Mary    |A       |150   |
|Anna    |B       |600   |
Run Code Online (Sandbox Code Playgroud)

和级别

|UserType|MinPoints|Level  |
|A       |100      |Bronze |
|A       |200      |Silver |
|A       |300      |Gold   |
|B       |500      |Bronze |
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个查询来获取每个用户的级别。类似的东西:

SELECT *
FROM Users U
INNER JOIN (
    SELECT TOP 1 Level, U.UserName
    FROM Levels L
    WHERE L.MinPoints < U.Points
    ORDER BY MinPoints DESC
    ) UL ON U.Username = UL.Username
Run Code Online (Sandbox Code Playgroud)

这样的结果将是:

|Username|UserType|Points|Level  |
|John    |A       |250   |Silver |
|Mary    |A       |150   |Bronze |
|Anna    |B       |600 …
Run Code Online (Sandbox Code Playgroud)

join sql-server sql-server-2012 max

15
推荐指数
1
解决办法
6万
查看次数

了解 varchar(max) 8000 列以及为什么我可以在其中存储超过 8000 个字符

这个微软文档,+

n 定义字符串长度,可以是 1 到 8,000 之间的值。max 表示最大存储大小为 2^31-1 字节(2 GB)。存储大小为输入数据的实际长度+2 个字节。

请帮助我理解这一点。

varchar 的最大字符数似乎是8000,这远低于2GB数据的价值。

我看到在varchar(max)特定表的这一列中有len(mycolumn)> 100 000 的记录。因此我知道我可以8000varchar(max)列中输入更多字符。

问题 1:8000角色是如何发挥作用的,我应该在哪里知道它?

问题 2: .net datareader 查询此列是否总是返回包含 100 000+ 个字符的完整结果?

sql-server varchar max

13
推荐指数
2
解决办法
2万
查看次数

为什么没有 max(uuid)/min(uuid) 函数?

为什么我可以使用 UUID 对行进行排序:

SELECT uuid_nil()
ORDER BY 1;
Run Code Online (Sandbox Code Playgroud)

但我无法计算最大值:

SELECT max(uuid_nil());
Run Code Online (Sandbox Code Playgroud)

[42883] 错误:函数 max(uuid) 不存在
提示:没有函数与给定名称和参数类型匹配。您可能需要添加显式类型转换。

我知道我可以转换为字符类型 orORDER BYLIMIT 1。我只是好奇为什么我必须使用解决方法。

postgresql max uuid postgresql-10

7
推荐指数
2
解决办法
9376
查看次数

可以用三级 B 树索引的最大记录数是多少?B+树?

我正在学习动态树结构组织以及如何设计数据库。

考虑具有以下特征的 DBMS:

  • 大小为 2048 字节的文件页
  • 12 字节的指针
  • 56 字节的页头

二级索引定义在 8 字节的页面上。可以用三级 B 树索引的最大记录数是多少?并且具有三级 B+树?

以下是这些树的两个示例:

B树

B+树

我的尝试

B+树

我读过那个

B+树比B树。因为除了最后一个之外,每个叶节点中只有表示为k最高键的集合存储在非叶节点中,组织为 B 树。关系 DBMS 内部,第 5 章:动态树结构组织,第 46 页

因此有一个区别,我们存储在 B 树的节点中的东西存储在 B+ 树的叶子中。因此,在我看来,它是(m-1) hm是顺序,h是高度),因为每个节点最多包含另一个节点的 (m-1) 个键。但这与字节数无关。

然而我在上面提到的书中找到了下表:

树的最小最大高度根据页面的大小

因此它会是 20 3.7条记录吗?

B树

对于他们来说,只要有一些值存储在节点中,我就必须除以节点数。而我被困在那里。

index tree database-size btree max

5
推荐指数
1
解决办法
3432
查看次数

使用 mongodb 返回特定字段中具有 $max 值的文档

我有一个包含一些足球比赛结果的 json 文件。我需要计算哪支球队在客场比赛中获胜最多,以及有多少场胜利。

我的查询是这样的:

db.football.aggregate(
{"$unwind": "$rounds"},
{"$unwind": "$rounds.matches"}, 

{"$project":
    {
        //"rounds.matches.team2.name":1,
        away_team: "$rounds.matches.team2.name",
        winner_away:
            { $cond: {if: {$gt:["$rounds.matches.score2","$rounds.matches.score1"] }, then:1,else :0} },
        _id:0   
    }
},
{"$group": {
    _id: {team_name:"$away_team"},
    total_wins: {$sum:"$winner_away"}
    }
}
)
Run Code Online (Sandbox Code Playgroud)

我得到的是这样的:

{ "_id" : { "team_name" : "Stoke City" }, "total_wins" : 6 }
{ "_id" : { "team_name" : "Newcastle United" }, "total_wins" : 2 }
{ "_id" : { "team_name" : "Chelsea" }, "total_wins" : 7 }
{ "_id" : { "team_name" : …
Run Code Online (Sandbox Code Playgroud)

mongodb aggregate max

5
推荐指数
1
解决办法
3万
查看次数

正确查找过去 3 个月每个月的最大值

我有一个查询,用于获取过去 3 个月的 ID 数据。我需要调整它,以便我在三个月中的每一个月都获得最高值。我已经用聚合函数 MAX 尝试了几件事,但我一无所获。

我试图获得过去几个月中每个月的最大值......

以下是查询中的数据,目前按日期 (asc) 排序:

ID 日期值
12410 01/03/2017 12:17 0.000178
12410 01/10/2017 11:36 0.000186
12410 01/17/2017 11:27 0.000189
12410 01/24/2017 13:09 0.000182
12410 01/31/2017 10:37 0.000169
12410 02/07/2017 11:03 0.000214
12410 02/14/2017 11:52 0.000176
12410 02/21/2017 10:51 0.000200
12410 02/28/2017 12:29 0.000194
12410 03/07/2017 08:39 0.000206

这是查询:

从 AnalysisValueTbl 中选择 AnalysisID 作为“ID”,AnalysisDateTime 作为“Date”,AnalysisValue 作为“Value”
在哪里
AnalysisID = 12410 和 DatePart(m, AnalysisDateTime) = DatePart(m, DateAdd(m, -3, getdate()))
和 DatePart(yyyy, AnalysisDateTime) = DatePart(yyyy, DateAdd(m,-3, getdate())) …

sql-server-2008 sql-server aggregate max

4
推荐指数
1
解决办法
2万
查看次数

如何检索表中的最大值及其对应的日期

我试图弄清楚如何从数据集中检索最小/最大值和最小/最大日期,以及每个最小/最大值对应的日期值。

示例数据

CREATE TABLE mytable
    ([ID] int, [TEMP] FLOAT, [DATE] DATE)
;

INSERT INTO mytable
    ([ID], [TEMP], [DATE])
VALUES
    (8305,  16.38320208,  '03/22/2002'),
    (8305,  17.78320208,  '11/15/2010'),
    (8305,  16.06320208,  '03/11/2002'),
    (8305,  18.06320208,  '02/01/2007'),
    (2034,  5.2,  '03/12/1985'),
    (2034,  2.24,  '05/31/1991'),
    (2034,  6.91,  '09/15/1981'),
    (2034,  7.98,  '07/16/1980'),
    (2034,  10.03,  '03/21/1979'),
    (2034,  6.85,  '11/19/1982')
;
Run Code Online (Sandbox Code Playgroud)

查询TEMPDATE列的最小值/最大值:

SELECT ID,
    COUNT(TEMP) AS COUNT,
    MAX(TEMP) AS MAXTEMP,
    MAX(DATE) AS MAXDATE
FROM mytable
GROUP BY ID;
Run Code Online (Sandbox Code Playgroud)

检索这个:

|   ID | COUNT |     MAXTEMP …
Run Code Online (Sandbox Code Playgroud)

sql-server query max

4
推荐指数
2
解决办法
3万
查看次数

max(max(col1), max(col2), ...) 不起作用

我有一个包含三个整数列的表:

select max(col1), max(col2), max(col3) from mytable
Run Code Online (Sandbox Code Playgroud)

我想要三列的最大值。但这不起作用:

select max(max(col1), max(col2), max(col3)) from mytable
Run Code Online (Sandbox Code Playgroud)

如何完成这项工作?

我使用 PostgreSQL,但我希望这可以用标准 SQL 解决。

postgresql max

1
推荐指数
1
解决办法
231
查看次数

如何获得每组第二高的值?

从表中获取第二高值已经解决了很多次,但我正在寻找每组中的第二高值。

鉴于此表:

+----+-----+
| A  |  10 |
| A  |  20 |
| A  |  35 |  <-- This record
| A  |  42 |
| B  |  12 |
| B  |  21 |  <-- This record
| B  |  33 |
| C  |  14 |
| C  |  23 |
| C  |  38 |
| C  |  41 |  <-- This record
| C  |  55 |
+----+-----+
Run Code Online (Sandbox Code Playgroud)

我想获得标记的行。
伪代码:

select col_a, penultimate(col_b) …
Run Code Online (Sandbox Code Playgroud)

postgresql select greatest-n-per-group max postgresql-9.6

1
推荐指数
1
解决办法
3422
查看次数

如果我们不使用 MAX 函数怎么办

我应该使用脚本从表中获取最大值。它应该看起来像这样

BEGIN
DECLARE @MaxID AS INT
SELECT @MaxID = MAX([Id]) FROM dbo.suggestion
Insert into suggestion
values(@MaxID+ 1, 'value', 1);
END
Run Code Online (Sandbox Code Playgroud)

相反,由于一些错误,它是这样的

BEGIN
DECLARE @MaxID AS INT
SELECT @MaxID = [Id] FROM dbo.suggestion
Insert into suggestion
values(@MaxID+ 1, 'value', 1);
END
Run Code Online (Sandbox Code Playgroud)

到目前为止,它运行良好,由于当我们开始深入研究时出现了其他一些问题,然后它就暴露出来了。

我想知道到目前为止它是如何运作的。

如果有人分享他们的知识,我们将不胜感激

TIA

sql-server migration entity-framework functions max

0
推荐指数
1
解决办法
507
查看次数