标签: group-concat

选择查询到一列的列表中

我试图将所有 id 选择到一列中并用逗号分隔 ,

我的数据列:

+---+--------+--------------+
|id |somedata|someother data|
+---+--------+--------------+
|1  |data1   |other1        |
+---+--------+--------------+
|2  |data2   |other2        |
+---+--------+--------------+
|3  |data3   |other3        |
+---+--------+--------------+
Run Code Online (Sandbox Code Playgroud)

我试图做出的结果:

+-------+
|id list|
+-------+
|1, 2, 3|
+-------+
Run Code Online (Sandbox Code Playgroud)

结果应该是名为“id list”的 1 列中的 ID 列表。

问题是,这可能吗?如何?我尝试搜索关键字sql query select into list和其他关键字,但没有运气。


但是这个查询是在一个嵌套的选择上。

mysql sql select group-concat

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

如何使用 Rails+MySQL 获取分组记录的列表(ID)?

我可以使用分组记录的数量对记录进行分组,如下所示:

@cars = Car.group(:manufacturer).select("id, manufacturer, COUNT(id) AS total_count)
Run Code Online (Sandbox Code Playgroud)

输出将是这样的;

Porsche - 5
Renault - 3
Mercedes - 1
Audi - 2
Run Code Online (Sandbox Code Playgroud)

我现在正试图弄清楚如何获得分组记录(他们的 ID)的列表 - 就像保时捷一样,我想知道 5 个分组的汽车(他们的 ID)。有没有办法做到这一点 - 理想情况下使用 MySQL(在select文章中)?

ruby mysql activerecord ruby-on-rails group-concat

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

选择以新行分隔的单列中的多行

我有一个值看起来像这样的表。

    Id Name Fruit
    ------------
    1 Jon  Apple
    ------------
    2 Jon  Orange
    ------------
    3 Jon  Grape
    ------------
    4 Mike Apple
    ------------
    5 Mike Orange
    -------------
Run Code Online (Sandbox Code Playgroud)

如何在 mysql 中将列区分为这样的内容?

    Name Fruit
    ----------
    Jon  Apple
         Orange
         Grape
    -----------
    Mike Apple
         Orange
    -----------
Run Code Online (Sandbox Code Playgroud)

mysql sql group-concat

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

SQL GROUP_CONCAT + SUM + AVG

SELECT *,
       Group_concat(rating) AS rating_total,
       Sum(rating_total)    AS rating_sum,
       Avg(rating_sum)      AS rating_avg
FROM   ratings
GROUP  BY pid  
Run Code Online (Sandbox Code Playgroud)

由于某种原因,总和和平均值不执行....你如何使这个陈述有效?

mysql sql average sum group-concat

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

复杂的查询 - 需要帮助!

真的希望有人可以帮我这个!我有6张桌子:

产品
十足

Prodequipment
prodid
equipclassmain
equipclassor

装备类
classid

Equipfunctions
equipid
的classid

设备
equipid

Workshopequipment
workshopid
equipid

产品 -一些产品列表
设备 -一些设备清单
Prodequipment -做一个产品所需要的设备清单.您可以使用equipclassmain中列出的设备,也可以使用equipclassor中的设备进行更换.表格产品与表格设备有一对多关系,即您将使用许多不同的工具(设备)来生产一种产品,但您可以选择使用对象equipclassmain/equipclassor中的任何人.例如,为了拍摄照片,您可以使用木制框架或塑料框架(一对)和盖玻片或盖塑料(第二对).您可以根据需要组合使用,但应使用两对:带盖玻璃的木框或带盖玻璃的塑料框架或带塑料盖的木框或带塑料盖的塑料框架.
设备功能设备 - 由于一件设备可以以不同的方式使用,因此它不直接与工作台设备相关联.我已经创建了table Equipclasses,其中列出了所有可能设备的所有单一用途,并且我列出了每台设备的单一用途的设备功能.
Workshopequipment - 列出他们正在使用的工作室和设备.

现在我需要一个可以由两个不同的给定车间制造的产品清单(比如workshopid = 1和workshopid = 4),即这两个车间都有生产这些产品所需的所有设备.请记住,如上所述,那些工作台不必使用相同的设备.

我正在尝试这个查询:

SELECT prodid FROM Products JOIN (
    SELECT workshopid, prodlist, equipclassmain, equipclassor, 
        if( LOCATE( equipclassmain, prodlist ) >0 
            AND LOCATE( equipclassor, prodlist ) >0, 1, 0 ) AS pairstatus FROM Prodequipment JOIN
    (
        SELECT classid FROM Equipclasses JOIN (
            SELECT classid FROM Equipfunctions …
Run Code Online (Sandbox Code Playgroud)

mysql sql group-concat locate

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

通过GROUP_CONCAT加入表行,失败了!它不工作?

我不知道为什么它不起作用.

"SELECT id GROUP_CONCAT(skill SEPARATOR ', ') FROM resume_skills GROUP BY id";
Run Code Online (Sandbox Code Playgroud)

我有一个表resume_skills,然后有两个字段id和技能.它返回一个像这样的错误:

ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP_CONCAT(skill SEPARATOR ', ') FROM resume_skills GROUP BY id' at line 1
Run Code Online (Sandbox Code Playgroud)

我还没搞清楚.救命?

php mysql join group-concat

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

如何group_concat与那种情况下的条件一样

我有表(mysql 5.5 INNODB):样本小数据+剪切不相关列的问题 - 真实数据巨大(会议表中超过10,000,000行)

INPUT:

day:

day_id(primary key)|sunday|monday|tuesday|wensday|thursday|friday|saturday
---------------------------------------------------------------------------
60                 |1     |1     |1      |1      |1       |1    |1
74                 |0     |1     |0      |0      |0       |0     |0
98                 |0     |0     |0      |0      |0       |0     |0
..etc......................................................................

meeting:

day_id(foreign key)|time    |type
----------------------------------
60                 |20:09:00|1
98                 |07:00:00|1
74                 |22:01:00|4
98                 |10:00:00|1
60                 |23:09:00|2
98                 |06:00:00|2
74                 |21:04:00|6
98                 |08:00:00|6
.....etc.....................
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

sunday_times          |monday_times                           |....etc
-------------------------------------------------------------------------------------------------
20:09:00,etc...       | 20:09:00,etc..   |
................etc..............................................................................
Run Code Online (Sandbox Code Playgroud)

我觉得这样的事情(但我是新的sql soo我不知道它是好的还是合法的)

 SELECT 
   GROUP_CONCAT(time where day.sunday=1 ORDER BY time) as sunday_times, 
   GROUP_CONCAT(time where …
Run Code Online (Sandbox Code Playgroud)

mysql group-concat

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

CONCAT周围的GROUP_CONCAT发出错误 - 组功能的使用无效

我正在尝试GROUP_CONCAT以下查询返回的结果:

SELECT
      CONCAT(p.product_name, " (", SUM(bp.quantity), ")") AS products
FROM product p
INNER JOIN booking_products bp ON p.product_id = bp.product_id
GROUP BY p.product_id
Run Code Online (Sandbox Code Playgroud)

此查询返回以下内容:

------------
| products |
------------
Shampoo (3)
Advil (1)
Dry Shampoo (4)
Cepacol (5)
Run Code Online (Sandbox Code Playgroud)

当我尝试运行下面的查询时,我收到一个错误:"#1111 - 无效使用组功能".这有什么问题?

SELECT
    GROUP_CONCAT(
        CONCAT(p.product_name, " (", SUM(bp.quantity), ")") 
        SEPARATOR ", "
    ) AS products
FROM product p
INNER JOIN booking_products bp ON p.product_id = bp.product_i
GROUP BY p.product_id
Run Code Online (Sandbox Code Playgroud)

当然应该回归:

Shampoo (3), Advil (1), Dry Shampoo (4), Cepacol (5)
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

mysql concat group-concat

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

PostgreSQL - JSONB 列的 GROUP_CONCAT

我尝试找到一种使用 Postgres 连接 JSONB 值的方法。

例如我有两行:

INSERT INTO "testConcat" ("id", "json_data", "groupID") 
VALUES (1, {"name": "JSON_name1", "value" : "Toto"}, 5);

INSERT INTO "testConcat" ("id", "json_data", "groupID") 
VALUES (2, {"name": "JSON_name2"}, 5);
Run Code Online (Sandbox Code Playgroud)

我想做类似的事情:

SELECT GROUP_CONCAT(json_data)
FROM testConcat
GROUP BY groupID
Run Code Online (Sandbox Code Playgroud)

并且作为获得类似结果的结果:

[{"name": "JSON_name1", "value": "Toto"}, {"name": "JSON_name2"}]
Run Code Online (Sandbox Code Playgroud)

我尝试创建聚合函数,但是当 JSON 中有相同的键时,它们会被合并并且只保留最后一个值:

DROP AGGREGATE IF EXISTS jsonb_merge(jsonb);

CREATE AGGREGATE jsonb_merge(jsonb) (
    SFUNC = jsonb_concat(jsonb, jsonb),
    STYPE = jsonb,
    INITCOND = '{}'
 );
Run Code Online (Sandbox Code Playgroud)

当我在这里使用此功能时:

SELECT jsonb_merge(json_data)
FROM testConcat
GROUP BY groupID
Run Code Online (Sandbox Code Playgroud)

结果是:

{"name": "JSON_name2", …
Run Code Online (Sandbox Code Playgroud)

postgresql aggregate group-concat jsonb

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