【问题标题】:How would i connect these two columns as one query?我如何将这两列连接为一个查询?
【发布时间】:2018-06-24 23:23:15
【问题描述】:

我想在姓名列表中查找重复姓名的计数。 就像

names       
------
jhon
jhon
jack
jhon
jack

我做了以下查询来计算名字的出现次数

select count(names) as namejhon from table_team where names=‘jhon’  
select count(names) as namejack from table_team where names=‘jack’

由此,我想得到下表(想要的结果)

namejhon       namejack
----------- -----------
         3          2

  1 record(s) selected.

但是当使用 JOIN 我得到这个

namejack       
----------- 
         5        

  1 record(s) selected.

我可以做些什么来获得想要的结果?任何指导表示赞赏。

【问题讨论】:

    标签: mysql sql database db2


    【解决方案1】:

    以下代码将为您提供您想要的信息,但它是一个查询,而不是一个表。如果您真的想创建一个表,其中列/字段名称是人名,而行/记录只是计数,您应该查看 CREATE TABLE 文档:https://dev.mysql.com/doc/refman/5.5/en/creating-tables.html 和 INSERT 命令文档:@987654322 @。

    SELECT
        COUNT(names) AS COUNT,
        names
    FROM
        table_team
    WHERE
        names in ('jhon', 'jack')
    GROUP BY
        names
    

    在原始海报的新信息之后添加:

    SELECT
        *
    FROM
        (SELECT COUNT(*) AS nameJack FROM table_team WHERE `names` = 'jack') AS SUB1
    INNER JOIN
        (SELECT COUNT(*) AS nameJhon FROM table_team WHERE `names` = 'jhon') AS SUB2
        ON
        (
        SUB1.`nameJack` <> SUB2.`nameJhon`
        OR
        SUB1.`nameJack` = SUB2.`nameJhon`
         )
    

    【讨论】:

    • 是的,我的意思是查询,您提供的代码没有这样做。我的意思是喜欢正在寻找的所需查询。因为我需要将 names1 和 name2 设为列,而您将它们设为行
    • 那么您需要创建一个表,其中包含名为 nameJack 和 name Jhon 的列。然后需要将查询结果插入到表中。
    • 有没有办法在不创建表格的情况下做到这一点,这就是为什么在这里或在这里询问但谢谢!!
    • 无法使用尚未创建的表,因为表在创建之前不存在。
    • 不尝试制作表格只是想找到一种方法将这两个选择组合在一起 select count(names) as namejhon from table_team where names='jhon' select count(names) as namejack from table_team其中名称='杰克'
    【解决方案2】:

    对于 MySQL:

    使用两个子选择。

    SELECT (SELECT count(names)
                   FROM table_team
                   WHERE names = 'jhon') namejhon,
           (SELECT count(names)
                   FROM table_team
                   WHERE names = 'jack') namejack;
    

    如果您想实现这一点,请使用CREATE TABLE ... AS SELECT ... snytax。

    CREATE TABLE jhon_and_jack
    AS
    SELECT (SELECT count(names)
                   FROM table_team
                   WHERE names = 'jhon') namejhon,
           (SELECT count(names)
                   FROM table_team
                   WHERE names = 'jack') namejack;
    

    虽然我不了解 DB2。但这也应该为您提供指导。

    【讨论】:

      猜你喜欢
      • 2017-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 2011-06-28
      相关资源
      最近更新 更多