can this query be rebuilt to be more optimized?order by importance then group by sectionHow can I prevent SQL injection in PHP?How to output MySQL query results in CSV format?How can I SELECT rows with MAX(Column value), DISTINCT by another column in SQL?Get top count in a table?GROUP BY vs INSERT IGNORESelect from three tables - mysql and phpHow to export and import the databases in MySql.Is there a possibility to avoid two subqueries which access the same table?What is better in performance for 1-to-1 relationship: a new table or a VARCHAR column with a lot of empty entriesSQL Syntax Error - Can't Import

In the Marvel universe, can a human have a baby with any non-human?

What is the origin of Scooby-Doo's name?

Cascading Repair Costs following Blown Head Gasket on a 2004 Subaru Outback

How dangerous are set-size assumptions?

C-152 carb heat on before landing in hot weather?

Can humans ever directly see a few photons at a time? Can a human see a single photon?

How long would it take to cross the Channel in 1890's?

3D Crossword, Cryptic, Statue View & Maze

What was the Shuttle Carrier Aircraft escape tunnel?

Impossible darts scores

Trainee keeps missing deadlines for independent learning

Why do all the teams that I have worked with always finish a sprint without completion of all the stories?

Has there been any indication at all that further negotiation between the UK and EU is possible?

How risky is real estate?

Is my Rep in Stack-Exchange Form?

If the world have massive single giant world tree can it stop earthquake?

Interaction between Leyline of Anticipation and Teferi, Time Raveler

Are all instances of trolls turning to stone ultimately references back to Tolkien?

Can the negators "jamais, rien, personne, plus, ni, aucun" be used in a single sentence?

Links to webpages in books

Can ADFS connect to other SSO services?

How do I respond to requests for a "guarantee" not to leave after a few months?

Should my manager be aware of private LinkedIn approaches I receive? How to politely have this happen?

Underbar nabla symbol doesn't work



can this query be rebuilt to be more optimized?


order by importance then group by sectionHow can I prevent SQL injection in PHP?How to output MySQL query results in CSV format?How can I SELECT rows with MAX(Column value), DISTINCT by another column in SQL?Get top count in a table?GROUP BY vs INSERT IGNORESelect from three tables - mysql and phpHow to export and import the databases in MySql.Is there a possibility to avoid two subqueries which access the same table?What is better in performance for 1-to-1 relationship: a new table or a VARCHAR column with a lot of empty entriesSQL Syntax Error - Can't Import






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








2















sqlfiddle: http://sqlfiddle.com/#!9/a209c7/2/0



my table is:



-- borrowed from https://stackoverflow.com/questions/55325155

CREATE TABLE IF NOT EXISTS `docs` (
`id` int(6) unsigned NOT NULL,
`section` int(2) unsigned NOT NULL,
`rev` varchar(3) NOT NULL
) DEFAULT CHARSET=utf8;
INSERT INTO `docs` (`id`, `section`, `rev`) VALUES
('1', '1', 'a'),
('2', '1', 'b'),
('3', '2', 'c'),
('4', '3', 'd'),
('5', '3', 'e');

CREATE TABLE IF NOT EXISTS `docs_importance` (
`doc_id` int(6) unsigned NOT NULL,
`importance` int(3) unsigned NOT NULL
) DEFAULT CHARSET=utf8;
INSERT INTO `docs_importance` (`doc_id`, `importance`) VALUES
('1', '1'),
('1', '2'),
('1', '2'),
('2', '2'),
('2', '4'),
('3', '9'),
('4', '5'),
('5', '6');


and my query is:



-- based on answer https://stackoverflow.com/questions/55325155

SELECT t.id, t.section, t.rev, t.importance
FROM (SELECT docs.id, docs.section, docs.rev, (SELECT SUM(docs_importance.importance)
FROM docs_importance
WHERE docs_importance.doc_id = docs.id) AS importance
FROM docs
GROUP BY docs.id
ORDER BY importance DESC
) AS t
GROUP BY t.section;



what i am doing is to order the rows of docs by its calculated sum of importance then group it by its section to get the highest doc in importance for each section only



can this query be remade in a better way and faster?










share|improve this question
























  • which version of MySQL you are using?

    – vishal
    Mar 25 at 9:43











  • @vishal MySQL 5.6 according to MariaDB version also I don't understand CTEs queries and WITH statements very good.

    – Joe Doe
    Mar 25 at 9:45











  • Have a PRIMARY KEY on each table. Read some of the Q&A at [greatest-n-per-group]. Implement some variant of what you find there. Then update the Question to show us how far you got.

    – Rick James
    Apr 17 at 3:07

















2















sqlfiddle: http://sqlfiddle.com/#!9/a209c7/2/0



my table is:



-- borrowed from https://stackoverflow.com/questions/55325155

CREATE TABLE IF NOT EXISTS `docs` (
`id` int(6) unsigned NOT NULL,
`section` int(2) unsigned NOT NULL,
`rev` varchar(3) NOT NULL
) DEFAULT CHARSET=utf8;
INSERT INTO `docs` (`id`, `section`, `rev`) VALUES
('1', '1', 'a'),
('2', '1', 'b'),
('3', '2', 'c'),
('4', '3', 'd'),
('5', '3', 'e');

CREATE TABLE IF NOT EXISTS `docs_importance` (
`doc_id` int(6) unsigned NOT NULL,
`importance` int(3) unsigned NOT NULL
) DEFAULT CHARSET=utf8;
INSERT INTO `docs_importance` (`doc_id`, `importance`) VALUES
('1', '1'),
('1', '2'),
('1', '2'),
('2', '2'),
('2', '4'),
('3', '9'),
('4', '5'),
('5', '6');


and my query is:



-- based on answer https://stackoverflow.com/questions/55325155

SELECT t.id, t.section, t.rev, t.importance
FROM (SELECT docs.id, docs.section, docs.rev, (SELECT SUM(docs_importance.importance)
FROM docs_importance
WHERE docs_importance.doc_id = docs.id) AS importance
FROM docs
GROUP BY docs.id
ORDER BY importance DESC
) AS t
GROUP BY t.section;



what i am doing is to order the rows of docs by its calculated sum of importance then group it by its section to get the highest doc in importance for each section only



can this query be remade in a better way and faster?










share|improve this question
























  • which version of MySQL you are using?

    – vishal
    Mar 25 at 9:43











  • @vishal MySQL 5.6 according to MariaDB version also I don't understand CTEs queries and WITH statements very good.

    – Joe Doe
    Mar 25 at 9:45











  • Have a PRIMARY KEY on each table. Read some of the Q&A at [greatest-n-per-group]. Implement some variant of what you find there. Then update the Question to show us how far you got.

    – Rick James
    Apr 17 at 3:07













2












2








2


1






sqlfiddle: http://sqlfiddle.com/#!9/a209c7/2/0



my table is:



-- borrowed from https://stackoverflow.com/questions/55325155

CREATE TABLE IF NOT EXISTS `docs` (
`id` int(6) unsigned NOT NULL,
`section` int(2) unsigned NOT NULL,
`rev` varchar(3) NOT NULL
) DEFAULT CHARSET=utf8;
INSERT INTO `docs` (`id`, `section`, `rev`) VALUES
('1', '1', 'a'),
('2', '1', 'b'),
('3', '2', 'c'),
('4', '3', 'd'),
('5', '3', 'e');

CREATE TABLE IF NOT EXISTS `docs_importance` (
`doc_id` int(6) unsigned NOT NULL,
`importance` int(3) unsigned NOT NULL
) DEFAULT CHARSET=utf8;
INSERT INTO `docs_importance` (`doc_id`, `importance`) VALUES
('1', '1'),
('1', '2'),
('1', '2'),
('2', '2'),
('2', '4'),
('3', '9'),
('4', '5'),
('5', '6');


and my query is:



-- based on answer https://stackoverflow.com/questions/55325155

SELECT t.id, t.section, t.rev, t.importance
FROM (SELECT docs.id, docs.section, docs.rev, (SELECT SUM(docs_importance.importance)
FROM docs_importance
WHERE docs_importance.doc_id = docs.id) AS importance
FROM docs
GROUP BY docs.id
ORDER BY importance DESC
) AS t
GROUP BY t.section;



what i am doing is to order the rows of docs by its calculated sum of importance then group it by its section to get the highest doc in importance for each section only



can this query be remade in a better way and faster?










share|improve this question
















sqlfiddle: http://sqlfiddle.com/#!9/a209c7/2/0



my table is:



-- borrowed from https://stackoverflow.com/questions/55325155

CREATE TABLE IF NOT EXISTS `docs` (
`id` int(6) unsigned NOT NULL,
`section` int(2) unsigned NOT NULL,
`rev` varchar(3) NOT NULL
) DEFAULT CHARSET=utf8;
INSERT INTO `docs` (`id`, `section`, `rev`) VALUES
('1', '1', 'a'),
('2', '1', 'b'),
('3', '2', 'c'),
('4', '3', 'd'),
('5', '3', 'e');

CREATE TABLE IF NOT EXISTS `docs_importance` (
`doc_id` int(6) unsigned NOT NULL,
`importance` int(3) unsigned NOT NULL
) DEFAULT CHARSET=utf8;
INSERT INTO `docs_importance` (`doc_id`, `importance`) VALUES
('1', '1'),
('1', '2'),
('1', '2'),
('2', '2'),
('2', '4'),
('3', '9'),
('4', '5'),
('5', '6');


and my query is:



-- based on answer https://stackoverflow.com/questions/55325155

SELECT t.id, t.section, t.rev, t.importance
FROM (SELECT docs.id, docs.section, docs.rev, (SELECT SUM(docs_importance.importance)
FROM docs_importance
WHERE docs_importance.doc_id = docs.id) AS importance
FROM docs
GROUP BY docs.id
ORDER BY importance DESC
) AS t
GROUP BY t.section;



what i am doing is to order the rows of docs by its calculated sum of importance then group it by its section to get the highest doc in importance for each section only



can this query be remade in a better way and faster?







mysql mariadb greatest-n-per-group query-performance






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 25 at 9:39







Joe Doe

















asked Mar 25 at 9:30









Joe DoeJoe Doe

386 bronze badges




386 bronze badges












  • which version of MySQL you are using?

    – vishal
    Mar 25 at 9:43











  • @vishal MySQL 5.6 according to MariaDB version also I don't understand CTEs queries and WITH statements very good.

    – Joe Doe
    Mar 25 at 9:45











  • Have a PRIMARY KEY on each table. Read some of the Q&A at [greatest-n-per-group]. Implement some variant of what you find there. Then update the Question to show us how far you got.

    – Rick James
    Apr 17 at 3:07

















  • which version of MySQL you are using?

    – vishal
    Mar 25 at 9:43











  • @vishal MySQL 5.6 according to MariaDB version also I don't understand CTEs queries and WITH statements very good.

    – Joe Doe
    Mar 25 at 9:45











  • Have a PRIMARY KEY on each table. Read some of the Q&A at [greatest-n-per-group]. Implement some variant of what you find there. Then update the Question to show us how far you got.

    – Rick James
    Apr 17 at 3:07
















which version of MySQL you are using?

– vishal
Mar 25 at 9:43





which version of MySQL you are using?

– vishal
Mar 25 at 9:43













@vishal MySQL 5.6 according to MariaDB version also I don't understand CTEs queries and WITH statements very good.

– Joe Doe
Mar 25 at 9:45





@vishal MySQL 5.6 according to MariaDB version also I don't understand CTEs queries and WITH statements very good.

– Joe Doe
Mar 25 at 9:45













Have a PRIMARY KEY on each table. Read some of the Q&A at [greatest-n-per-group]. Implement some variant of what you find there. Then update the Question to show us how far you got.

– Rick James
Apr 17 at 3:07





Have a PRIMARY KEY on each table. Read some of the Q&A at [greatest-n-per-group]. Implement some variant of what you find there. Then update the Question to show us how far you got.

– Rick James
Apr 17 at 3:07












0






active

oldest

votes














Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55334755%2fcan-this-query-be-rebuilt-to-be-more-optimized%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid …


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55334755%2fcan-this-query-be-rebuilt-to-be-more-optimized%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to preserve electronics (computers, tablets and phones) for hundreds of years Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) The network's official Twitter account is up and running again. What content…How might modern humans leave a message for 50,000 years?How would an aquatic race develop computers?How do we make computers care for human life?Keeping supplies for 1000 yearsWhat will cell phones become in 100 years?What body armor protects against a laser?Could a society attain 1800s technology if limited to using copper and bronze?Electricity power (magic) and electronicsScavenging metal resources in post-apocalypse after 100 yearsWhy would precursors create devices that can survive and still work after hundreds of years?

155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해

Convert JSON to MapSimplest way to convert a string representing JSON array into Java array List of key value pairsHow to take String JSON values into HashMapConvert a JSON String to a HashMapCreating BSON object from JSON stringJSONObject - How to get a value ?Better Map ConstructorReading JSON from Url javaUpdate columns if input values are not null otherwise ignore and keep the existing values of column in databaseHow to store object represented as Json string into Couchbase Lite?Go JSON into MapHow do I efficiently iterate over each entry in a Java Map?Sort a Map<Key, Value> by valuesHow to round a number to n decimal places in JavaCan comments be used in JSON?How do I read / convert an InputStream into a String in Java?How can I pretty-print JSON in a shell script?What is the correct JSON content type?How can I deserialize JSON to a simple Dictionary<string,string> in ASP.NET?Why does Google prepend while(1); to their JSON responses?Parse JSON in JavaScript?