Postgresql how to do min and max with the name beside the value [closed] - postgresql

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 5 months ago.
Improve this question
this is the data table
how to do to get below result:
Here is the result i want to get
I only can get lowest and highest without (name), any ideas to get above result?

Use GROUP BY for grouping the subjects and then fetch max_mark, min_mark using MAX(), MIN() functions respectively
SELECT subject AS "sub1",
MAX(scc) AS "max_mark",
MIN(scc) AS "min_mark"
FROM Subjects_mark
GROUP BY 1
Now use subquery for formatting the output
SELECT sub1,
CONCAT(min_mark,'(',studentnar,')') AS "lowest point",
CONCAT(max_mark,'(',studentnar,')') AS "highest point"
FROM Subjects_mark AS s1
JOIN (
SELECT subjects AS "sub1",
MAX(scc) AS "max_mark",
MIN(scc) AS "min_mark"
FROM Subjects_mark
GROUP BY 1
) AS dt
ON dt.sub1 = s1.subjects
AND dt.max_mark = s1.scc

Related

Function to calculate number of days [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 days ago.
Improve this question
Data and Question
Select firstname, lastname, h1.date as admission, h2.date as discharge,
DATE_PART('day', h2.date - h1.date) as totaldays from Participant p
join Hospital h1 on p.health_id = h1.health_id
and h1.transaction = 'Admission'
join Hospital h2 on p.health_id = h2.health_id
and h2.transaction = 'Discharge';
That's my code, but it's not giving me any result. The above code is for part two of the below question.
I want to find the number of days the participant spent in hospital over the period 2018-2019.

Get last N rows ordered ascending without using nested SELECTs [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 1 year ago.
Improve this question
I'd like to get the last N rows in ascending order. Is it possible without using nested SELECTs?
The reason of this question if it is know if there is other way more efficient.
Nested selects:
select id, timestamp, col3, col4
from (
select * from t_myTable
order by timestamp DESC LIMIT 5
) as d
order by timestamp ASC
The id column is auto-incremental.
thanks.
Since you need two different orderings, I cannot imagine that there is a different way to do it without a subquery. And even if there were, I am pretty confident that that query would be more complicated and would perform worse.

how to check is string contains substring? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
I have a table with field name out of type text
I want to get the rows which contains sub string "hello and good morning"
I have tried to write:
select *
from my_table
where out like 'hello and good morning%'
but it seems not working.
How can I get all the rows which contains sub string ?
According to given details, this should work.
select * from my_table where LOWER(out) like LOWER('%hello and good morning%')
Here is the fiddle.

Why the "Group BY" by month didn't work? [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 4 years ago.
Improve this question
Why the result of this query is always one :
SELECT stats1.cnt1 FROM staging.memberships_autoship_box b JOIN staging.memberships_autoship a ON a.id = b.autoship_box_id JOIN (SELECT COUNT(bn.autoship_box_id) cnt1,bn.autoship_box_id FROM staging.memberships_autoship_box bn GROUP BY bn.autoship_box_id ) stats1 ON
(stats1.autoship_box_id = a.id)
The group by clause, unlike the order by clause, doesn't take column ordinals. In this clause, 1 and 2 are just integer literals, and since every row of your query has the same value for these two literals, they are all grouped in to a single result row.
Instead, you should use the actual columns from your query:
GROUP BY sql_activity_days.styleship_start_month, memberCountSql."122_days"

newline character in Postgresql [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
How can we get this output
results from query should be like:
Assessment
penalty
both values are coming from two different columns. I want to join these two columns but want results like above in single cell. so there should be new line for second column(but in same cell)
select assessment || E'\n' || penalty from wherever
or
select concat_ws(chr(10), assessment, penalty) from wherever
Note: I am assuming, since you didn't say, that neither column can be null.