简单SQL查询-分组依据和计数/求和?
我对SQL很差劲,已经试了几个小时了,有人能告诉我怎么写这个吗 我有一张名为“动物”的表格,上面有“物种和年龄”列。 例如:简单SQL查询-分组依据和计数/求和?,sql,Sql,我对SQL很差劲,已经试了几个小时了,有人能告诉我怎么写这个吗 我有一张名为“动物”的表格,上面有“物种和年龄”列。 例如: +-----------------------+ | Species | Age | +-----------------------+ | Dog | 3 | |------------|----------| | Dog | 18 | |------------|----------| |
+-----------------------+
| Species | Age |
+-----------------------+
| Dog | 3 |
|------------|----------|
| Dog | 18 |
|------------|----------|
| Cat | 3 |
|------------|----------|
| Dog | 20 |
+-----------------------+
我想弄清楚,对于每个物种,在所有3岁的动物中,该物种占多大比例,而在所有非3岁的动物中,该物种占多大比例
所以一些事情会告诉我,比如:
狗4.5%表示所有3岁动物中有4.5%为狗23%表示所有非3岁动物中有23%为狗
类别7.8%12%
等等
非常感谢尝试以下查询:
SELECT
Species,
100.0 * COUNT(CASE WHEN Age = 3 THEN 1 END) /
(SELECT COUNT(*) FROM yourTable WHERE Age = 3) AS 3_pct,
100.0 * COUNT(CASE WHEN Age <> 3 THEN 1 END) /
(SELECT COUNT(*) FROM yourTable WHERE Age <> 3) AS not_3_pct,
FROM yourTable
GROUP BY Species;
分母计算所有3岁动物的数量:
COUNT(CASE WHEN Age = 3 THEN 1 END)
(SELECT COUNT(*) FROM yourTable WHERE Age = 3)
请尝试以下查询:
SELECT
Species,
100.0 * COUNT(CASE WHEN Age = 3 THEN 1 END) /
(SELECT COUNT(*) FROM yourTable WHERE Age = 3) AS 3_pct,
100.0 * COUNT(CASE WHEN Age <> 3 THEN 1 END) /
(SELECT COUNT(*) FROM yourTable WHERE Age <> 3) AS not_3_pct,
FROM yourTable
GROUP BY Species;
分母计算所有3岁动物的数量:
COUNT(CASE WHEN Age = 3 THEN 1 END)
(SELECT COUNT(*) FROM yourTable WHERE Age = 3)
获取3岁以下所有狗类动物的百分比:
declare @p int;
select @p = (100.0 * COUNT(a.Species) / (select COUNT(*) from Animals)) from Animals a
where a.Age = 3 and a.Species = 'dog'
group by a.Species
print CONVERT(NVARCHAR, @p) + '% of animals age 3 are dogs';
获取3岁以下所有狗类动物的百分比:
declare @p int;
select @p = (100.0 * COUNT(a.Species) / (select COUNT(*) from Animals)) from Animals a
where a.Age = 3 and a.Species = 'dog'
group by a.Species
print CONVERT(NVARCHAR, @p) + '% of animals age 3 are dogs';
选择姓名、年龄、countage作为事件\计数,countage*100.0/选择count*from animal作为事件\按年龄划分的动物组百分比
选择名称、年龄、countage作为事件\u count、countage*100.0/选择count*from animal as event\u percent from animal group by age请添加您尝试的查询。听起来像是家庭作业。你应该告诉我们你正在使用哪个版本的SQL。请添加你尝试的查询。听起来像是家庭作业。你应该告诉我们你正在使用哪个版本的SQL。