[英]doing a select count(col), max(col), column_name_data from table
我如何select count(artc_id) as cval, max(srt_id) as maxval, artc_title from table where artc_pub = 1
这样我就可以得到如下结果:
cval | maxval | artc_title | artc_pub
-----------------------------------------
4 4 Title 1 1
Title 2 1
Title 3 1
Title 4 1
我桌子的一部分在下面
artc_id | srt_id | artc_title | artc_pub
-----------------------------------------
1 1 Title 1 1
2 2 Title 2 1
3 3 Title 3 1
4 4 Title 4 1
1 5 Title 1 2
2 6 Title 2 2
我尝试select count(artc_id) as cval, max(srt_id) as maxval, artc_title from table where artc_pub = 1
但这仅给我第一个标题所在的行。 我猜这里肯定不止是一个普通的旧选择。
下面的所有答案都给我这样的结果:
cval;maxval;artc_title
1 ; 1; Title 1
1 ; 2; Title 2
1 ; 3; Title 3
1 ; 4; Title 4
1 ; 5; Title 5
不喜欢我在问题中提到的方式。
我认为最好有2个查询,一个用于汇总,一个用于标题:
SELECT COUNT(*) AS cval,
MAX(srt_id) AS maxval
FROM table
WHERE artc_pub = 1 ;
SELECT artc_title
FROM table
WHERE artc_pub = 1 ;
您还可以使用GROUP_CONCAT()
函数将标题合并为一行:
SELECT COUNT(*) AS cval,
MAX(srt_id) AS maxval,
GROUP_CONCAT(artc_title ORDER BY srt_id SEPARATOR ', ')
AS artc_title
FROM table
WHERE artc_pub = 1 ;
您也可以将这两个与联接结合在一起,但是会返回很多重复的数据:
SELECT ag . cval,
ag . maxval,
t . artc_title
FROM
( SELECT COUNT(*) AS cval,
MAX(srt_id) AS maxval
FROM table
WHERE artc_pub = 1
) AS ag
CROSS JOIN
table AS t
WHERE t.artc_pub = 1 ;
并且,如果MySQL曾经获得过窗口函数(乐观主义者读:什么时候有),上面的代码将写成:
SELECT COUNT(*) OVER () AS cval,
MAX(srt_id) OVER () AS maxval,
artc_title
FROM table
WHERE artc_pub = 1 ;
您应该可以在此处使用GROUP BY
将结果按“文章标题”分组:
SELECT
COUNT(artc_id) AS cval,
MAX(srt_id) AS maxval,
artc_title
FROM
table
WHERE
artc_pub = 1
GROUP BY
artc_title
ORDER BY
artc_title;
GROUP BY artc_title
像这样:
select
count(artc_id) as cval,
max(srt_id) as maxval,
artc_title
from table
where artc_pub = 1
GROUP BY artc_title
您错过了分组期限
SELECT count(artc_id) AS cval, max(srt_id) AS maxval, artc_title
FROM table
WHERE artc_pub = 1
GROUP BY artc_title
你尝试过>>
select count(artc_id) as cval, max(srt_id) as maxval, artc_title from table where artc_pub = 1 Group By artc_title
我希望这会起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.