gpt4 book ai didi

c# - 从 SQLite 数据库中获取列中具有相同最小值的所有行

转载 作者:行者123 更新时间:2023-12-03 18:41:40 25 4
gpt4 key购买 nike

我正在使用 System.Data.SQLite 在 c# 中使用 SQLite 数据库,但这个问题更多的是关于 SQLite。我有一张这样的 table :

    Date           Maxt           Mint           Snowrain
1956-04-19 13 -28 0.2
1996-04-19 16 -25 0.7
2015-04-19 12 -23.1 0
1958-04-19 16 -28 4

使用此查询:
"SELECT strftime('%Y', Date), snowrain, min(mint) FROM Temps where Date like '%04-19'";

我得到:
1956  0.2  -28

但我需要获取所有最低温度的日期,例如:
1956  0.2  -28
1958 4 -28

我需要使用什么查询?

附言对不起我的英语不好。

最佳答案

我相信以下会做你想要的。但是,原始查询的结果应该是 1996 0.7 -30 (我怀疑这是因为类型亲和力)

SELECT 
strftime('%Y', Date),
snowrain,
mint
FROM Temps
WHERE Date
LIKE '%04-19'
AND CAST(mint AS REAL) = (
SELECT min(CAST(mint AS REAL))
FROM Temps
WHERE date LIKE '%04-19'
);
  • 请注意 CAST 到 REAL,这可能是您得到 -28 而不是 -30
  • 的原因

    使用以下测试:-
    DROP TABLE IF EXISTS Temps;
    CREATE TABLE IF NOT EXISTS Temps (Date TEXT, Maxt, Mint, Snowrain);
    INSERT INTO Temps VALUES
    ('1956-04-19',13,'-28',0.2),
    ('1996-04-19',16,'-30',0.27),
    ('2015-04-19',12,'-29.1',0),
    ('1958-04-19',16,'-28',4),
    ('1997-04-19',16,'-30',0.27) /* ADDED as -30 min temp so multiple lowest tempts are available*/
    ;

    SELECT
    strftime('%Y', Date),
    snowrain,
    mint
    FROM Temps
    WHERE Date
    LIKE '%04-19'
    AND CAST(mint AS REAL) = (
    SELECT min(CAST(mint AS REAL))
    FROM Temps
    WHERE date LIKE '%04-19'
    );
    DROP TABLE IF EXISTS Temps /* Clean up testing environment */ ;
  • 备注 以上使用 的数据薄荷 如果不使用 CAST,该列将返回 -28。

  • 结果是 :-

    enter image description here
  • 突出显示的行是添加的额外行,以显示检索到所有具有最低温度的行。
  • 关于c# - 从 SQLite 数据库中获取列中具有相同最小值的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58834190/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com