我最近升级到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
答案 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