gpt4 book ai didi

mysql - 分组依据 - 具有不同的结果,包括。数数

转载 作者:行者123 更新时间:2023-11-30 01:09:52 24 4
gpt4 key购买 nike

关于mysql中“group by”语句的简短问题:

我当前的数据库结构如下所示:

CREATE TABLE TableName 
(
ID int primary key,
name varchar(255),
number varchar(255)
);

INSERT INTO TableName
(ID, name, number)
VALUES
(1, "Test 1", "100000"),
(2, "Apple", "200000"),
(3, "Test 1 beta", "100000"),
(4, "BLA", "300000"),
(5, "ABU", "400000"),
(6, "CBA", "700000"),
(7, "ABC", "600000"),
(8, "Orange - Test", "400000"),
(9, "ABC", "");

我当前的声明如下:

SELECT name, number, count(*) as Anzahl 
FROM TableName
group by name,number

使用此语句,结果如下所示:

NAME            NUMBER      ANZAHL
ABC 1
Test 1 100000 2
Apple 200000 1
BLA 300000 1
ABU 400000 2
ABC 600000 1
CBA 700000 1

但是值“ABC”不会合并。

结果应该是这样的:

NAME            NUMBER      ANZAHL
Test 1 100000 2
Apple 200000 1
BLA 300000 1
ABU 400000 2
ABC 600000 2
CBA 700000 1

有什么想法吗?

SQLFiddle: http://sqlfiddle.com/#!2/dcbee/1

该解决方案必须对于 +1 000 000 行之类的内容具有高性能

最佳答案

首先,恕我直言,将数字存储到字符列中是一个糟糕的设计。使用整数比使用字符更快。话虽这么说,我假设名称列中的所有值都是数字。这是一个避免多个 ABC 值的查询

SELECT name, 
SUM(convert(number, SIGNED INTEGER)) as number,
count(*) as Anzahl
FROM TableName
GROUP BY name ;

关于mysql - 分组依据 - 具有不同的结果,包括。数数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19524597/

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