You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用MySQL查询2个最小year值、count(title)及starName字段?

让我来一步步帮你解决这两个MySQL查询问题:

问题1:如何使用MySQL从表中获取2个最小的year值以及count(title)?

假设你的数据表名为your_table(记得替换成实际表名),这个需求可以通过分组、排序和限制结果数轻松实现:

SELECT year, COUNT(title) AS title_count
FROM your_table
GROUP BY year
ORDER BY year ASC
LIMIT 2;

关键部分说明:

  • GROUP BY year:把数据按年份分组,这样我们才能统计每个年份下的title条目数
  • COUNT(title):计算每个年份分组里的title数量,用AS title_count给结果列起个直观的别名
  • ORDER BY year ASC:按年份从小到大排序,确保最小的年份排在最前面
  • LIMIT 2:只返回前2条结果,也就是我们要的两个最小年份及其对应的title统计数

如果title字段可能存在NULL值,COUNT(title)会自动忽略这些NULL;要是你想统计该年份的所有行(包括title为NULL的),换成COUNT(*)就行。


问题2:如何编写MySQL查询语句,从表中选取count(title)、1995和1996这两个最小年份对应的starName字段?

这里分两种场景来处理,你可以根据实际需求选择:

场景1:确认1995和1996是表中最小的两个年份

先通过子查询定位到最小的两个年份,再关联原表获取对应的starName和统计数据:

SELECT 
    t.year,
    COUNT(t.title) AS title_count,
    t.starName
FROM your_table t
JOIN (
    SELECT year
    FROM your_table
    GROUP BY year
    ORDER BY year ASC
    LIMIT 2
) AS top_min_years ON t.year = top_min_years.year
GROUP BY t.year, t.starName;

场景2:直接指定查询1995和1996年(不管是否为最小年份)

如果已经明确要查这两个年份,直接用WHERE子句过滤更简单:

SELECT 
    year,
    COUNT(title) AS title_count,
    starName
FROM your_table
WHERE year IN (1995, 1996)
GROUP BY year, starName;

额外优化:如果需要每个年份的总title数+对应明星

要是你想同时看到每个年份的总title数量,以及该年份下的所有明星姓名,可以用这个查询:

SELECT 
    t.year,
    (SELECT COUNT(title) FROM your_table WHERE year = t.year) AS total_year_titles,
    t.starName
FROM your_table t
WHERE year IN (1995, 1996)
GROUP BY t.year, t.starName;

这个版本会展示每个年份的总title数,以及该年份对应的每个明星。


内容的提问来源于stack exchange,提问作者molamola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:28:13