使用COUNT和GROUP BY的MySQL非聚合列

时间:2019-03-14 16:05:05

标签: mysql

我最近升级到MySQL 5.7,并遇到了使用GROUP BY的问题。我不确定如何构造它。任何帮助将不胜感激。

我基本上想实现两件事。 -获取每个storeName的计数 -获取所有行,并按DISTINCT storeName进行排序(不重复)。

SELECT COUNT(storeName)
     , id
     , storeName
     , mallName
     , address
     , city
     , state
     , zip
     , phone
     , description 
  FROM $tbl_name 
 WHERE storeName LIKE '$myquery%' 
 GROUP 
    BY id
     , storeName

1 个答案:

答案 0 :(得分:1)

如果我正确地理解了这一点,并且您需要count()和组成该计数的行,那么我相信这在单个查询中是不可能的。如果这是100%必要的操作,您可以将带有商店名称的count(*)放在临时表中。然后加入商店名称的临时表,以将每个商店名称的计数引入。 这将使您在与商店名称对应的每一行中进行计数。希望这会有所帮助

edit:我使它可以在一个查询中工作。不知道为什么我认为这不可能 这是一个例子

select t.storename, c.count,t.* 

from table t

left join (select distinct storename, count(*) as count
           from table 
           group by storename
) as c

on t.storename = c.storename

order by t.storename