With a table with data like this:
By submitting your personal information, you agree that TechTarget and its partners may contact you regarding relevant content, products and special offers.
a a a b b c
a 50 b 33.333 c 16.666
I'll try to reproduce your scenario. Here's the SQL to create and populate the table:
create table MyTable ( MyColumn char(1) ); insert into MyTable values ('a'); insert into MyTable values ('a'); insert into MyTable values ('a'); insert into MyTable values ('b'); insert into MyTable values ('b'); insert into MyTable values ('c');
select MyColumn, round( 100.0 * count(*) / ( select count(*) from MyTable ) ,3 ) Perc from MyTable group by MyColumn;
select MyColumn, round(100.0 * count(*) / t.cnt,3) Perc from MyTable cross join ( select count(*) cnt from MyTable ) t group by MyColumn, t.cnt;
MYCOLUMN PERC -------- ---------- a 50 b 33.333 c 16.667
For More Information
- What do you think about this answer? E-mail the edtiors at editor@searchDatabase.com with your feedback.
- The Best SQL Web Links: tips, tutorials, scripts, and more.
- Have an SQL tip to offer your fellow DBAs and developers? The best tips submitted will receive a cool prize. Submit your tip today!
- Ask your technical SQL questions -- or help out your peers by answering them -- in our live discussion forums.
- Ask the Experts yourself: Our SQL, database design, Oracle, SQL Server, DB2, metadata, object-oriented and data warehousing gurus are waiting to answer your toughest questions.
Dig Deeper on Oracle and SQL
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.